ファイルを開いて、C++でファイルから一連のintを読み出そうとしています。私はこれを単にinputfile >>変数を使って行うことができたという印象を受けました。しかし、最初の項目でさえ誤って読み込んでいます。私は私の問題を再現するための最も簡単なコードを書いた。C++でファイルからintを読み取る
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char **argv) {
int n;
ifstream inputfile("input.txt");
inputfile >> n;
cout << "NUMBER IS: " << n << endl;
return 0;
}
入力ファイルは、単に番号4を含むテキストファイルです。ただし、コードをテストするたびに異なる大きな数値が出力されます。問題は何ですか?
ファイルの読み込みエラーはおそらくありました。 [ifstream Error Checking](http://stackoverflow.com/questions/13446593/c-ifstream-error-checking)を参照してください。 - 開封後および読んだ後のエラーを確認してください。 – interjay
番号はどのようにコード化されていますか?バイナリ形式ですか?もしそうなら、ビッグエンディアンかリトルエンディアンか?数値のASCII表現ですか? – wallyk
'if(inputfile >> n)...'のように入力操作が実際にうまくいったかどうか確認してください。あなたのファイルが正しく開かれていない可能性があります。 –