2016-09-05 11 views
-1

ファイルを開いて、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を含むテキストファイルです。ただし、コードをテストするたびに異なる大きな数値が出力されます。問題は何ですか?

+2

ファイルの読み込みエラーはおそらくありました。 [ifstream Error Checking](http://stackoverflow.com/questions/13446593/c-ifstream-error-checking)を参照してください。 - 開封後および読んだ後のエラーを確認してください。 – interjay

+0

番号はどのようにコード化されていますか?バイナリ形式ですか?もしそうなら、ビッグエンディアンかリトルエンディアンか?数値のASCII表現ですか? – wallyk

+0

'if(inputfile >> n)...'のように入力操作が実際にうまくいったかどうか確認してください。あなたのファイルが正しく開かれていない可能性があります。 –

答えて

1

は、このようなチェックを追加します。

if(inputfile>> n) 
{ 
    //Code 
} else 
{ 
    cout << "Failed!"; 
} 

また、ファイルが開かれたチェック:

ifstream inputfile("input.txt"); 
if (!inputfile) 
{ 
    cout << "Failed opening file!"; 
    return -1; 
} 
+0

私はこれを行い、ファイルが正しく開かれていないようです。これに対処するために私は何ができますか?なぜファイルが開かないのですか? – tjcoats97

+2

@ tjcoats97おそらくあなたの現在のディレクトリにはありません。ファイルの絶対パス名を使用してみてください。 – Barmar

+0

@ tjcoats97正しいディレクトリ、右の名前、正しい拡張子、拡張子はありませんか?あなたはこれらを試しましたか?スペルミスは致命的なことがあります –

関連する問題