1
私はQTextStreamを使ったシンプルなコードを持っていて、Visual Studioのデバッグモードで非常にうまく動作しますが、リリースモードにすると、Qt4.6.3 vs2008を使ってt read anything from the file. I included QtCore4.lib for the release mode and for the debug mode QtCored4.lib. I
mデバッグモードで動作する場合の問題? 私は以下のコードを挿入:QTextStreamと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;
}
誰もが少なくとも一度はこれを行います。アサーションは便利ですが、やや悪です。 – Thomi
はい、決してアプリケーションの制御のようなファイルシステム状態、入力データ、ユーザーアクションなどの外の条件ではassert()しないでください。もちろん、この問題はassert()の完全に有効な使用法でも起こります。 –
助けてくれてありがとう!これは私の問題を解決した、私はアサートがリリースモードでスキップされていることを知りませんでした。 – Corgan