J'ai un code simple utilisant QTextStream et il fonctionne très bien dans Visual Studio en mode débogage, mais si je le mets en mode release, il ne le fait pas en utilisant Qt4.6.3 vs2008, ce qui pourrait être le problème si cela fonctionne en mode débogage? insérer le code ci-dessous:QTextStream et le mode de sortie de Visual Studio 2008
#include <iterator>
#include <QFile>
#include <QTextStream>
#include <QString>
#include<iostream>
#include<fstream>
#include<iterator>
#include<assert.h>
#include<stdio.h>
using namespace std;
void main()
{
QString qsArgsFile = "curexp.txt",line;
QByteArray baline;
cout<<qsArgsFile.toAscii().data();
QFile qfile(qsArgsFile);
assert(qfile.open(QIODevice::ReadOnly | QIODevice::Text));
QTextStream stream(&qfile);
baline = qfile.read(50);
const char *liner;
while(!(line = stream.readLine()).isNull())
if (!line.isEmpty()) {
baline = line.toLatin1();
liner = baline.data();
cout << liner << endl;
}
Tout le monde le fait au moins une fois. Les assertions sont utiles, mais un peu mal aussi. – Thomi
Oui, ne jamais affirmer() sur des conditions en dehors du contrôle de l'application - comme l'état du système de fichiers, les données d'entrée, les actions de l'utilisateur, etc. Mais ce problème peut également se produire avec assert(). –
Merci pour votre aide! Cela a résolu mon problème, je ne savais pas que l'affirmation est ignorée en mode de libération. – Corgan