に私は誰かがこのwhileループは、ここでどのように機能するかを説明することができますので、ファイルを開こうとすると、いくつかのトラブルを抱えている方:ファイルを開く
#include <fstream>
std::ifstream infile("thefile.txt");
int a,b;
while (file >> a >> b){}
に私は誰かがこのwhileループは、ここでどのように機能するかを説明することができますので、ファイルを開こうとすると、いくつかのトラブルを抱えている方:ファイルを開く
#include <fstream>
std::ifstream infile("thefile.txt");
int a,b;
while (file >> a >> b){}
while
ループは、空のボディを持っています。したがって、それが行うすべては、偽になるまで式file >> a >> b
を評価します。
file>>a>>b
あなたが開いたファイルから2つの整数を読み込みます。エラーまたはファイルの終わりに遭遇すると、それは偽になります。
編集:
しかし、ファイルを開く際に問題に言及。成功したかどうか、失敗した理由を確認できます。
if (!file)
cerr<<"Couldn't open the file:"<< strerror(errno) <<endl; // or alternatively
// use the good old perror()
else
...
これは最初に見つかった2つの数字をaとbにソートしますか? – Irene
@Ireneソートされません。ファイルの最後に到達するか、エラーが発生するまで、2つのスペースで区切られた整数を 'a'と' b'に読みとります。 –
最初の数字はaに、2番目の数字はbに、それは再びllopsになるので、3番目の数字はaとbの4番目になります。 – Christophe
実際にあなたが尋ねていることは不明です。ファイルを正しく開くにはどうすればいいですか、またはコアを開くことができないときにはどうすればwhile (file >> a >> b)
が動作するのですか?コメントでコードを説明しようと
まあ、:
#include <fstream>
std::ifstream infile("thefile.txt"); // Tries to open the file in the current working
// directory the program is executed
int a,b;
while (file >> a >> b){} // Will try to read numeric values from file and store them to
// a and b. If the file couldn't be opened, or the parsing
// for numeric values failed, the loop will never be entered or
// immediately end
あなたはそれについて何を理解していませんか? – NathanOliver
whileループの前に 'infile'の状態を調べます。 'thefile.txt'はおそらくあなたの現在の作業ディレクトリにはありません。 –
私はこの中でどのように働いているのか理解できません。ファイル>>> >> bは何ですか – Irene