0

「1」と「-1」を縦方向のシーケンスとして含む「.dat」ファイルがあります (つまり、各要素が 1 行に表示されます)。

次のようにファイルを読み込もうとしています:

char buf[30];
QFile sequence("Sequences.dat");
sequence.open(QFile::ReadOnly);
for(int sym=0; sym<29; sym++){
    char c = symbols[sym] = sequence.readLine(buf,sizeof(buf));
    symbols[sym] = c;
}
sequence.close();

ただし、以下に示すように、結果は私のシーケンスとは異なります。

ここに画像の説明を入力

私は何を間違えましたか?

4

1 に答える 1

2

API ドキュメントを確認してくださいreadLine。戻り値は読み取られたバイト数ですが、行は配列に読み取られ、buf反復ごとに上書きされます。'\0'おそらくファイルの最後の行が空であるため、検査された配列の最初のシンボルは (空の文字列) であることに注意してください。

于 2013-05-07T17:07:00.530 に答える