私のプログラムはファイル "LineUp.txt"を読み込もうとしています。アルファベット順の名前を持っていますが、複数の名前を読み取ることはありません。最初の名前を何度も何度も読むだけです。私はforループを使用していますが、他の問題でこれまで見たことのないwhileループは使用していません。私は助けに感謝します!コードは次のとおりです。forループを使用してファイルを次の行に移動する方法
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(){
ifstream myFile;
string name, front, back;
int numOfStudents, i;
myFile.open("LineUp.txt");
if(!myFile)
cout << "File not found";
cout << "Please enter the number of students: ";
cin >> numOfStudents;
myFile >> name;
front = name;
back = name;
while(myFile >> name){
if(name < front)
front = name;
if(name > back)
back = name;
}
for(i = 0; i < numOfStudents; i++){
myFile >> name;
cout << name << endl;
}
return 0;
}
'while'ループはファイルの内容をすべて読み込みます。次の 'for'ループは、EOFを超えて読み込みを試みます。 'for'ループ条件(例えば' i> name'のような)でそれをチェックすると、それはまったく動かないことがわかります。 –
ファイルの先頭に戻るにはどうすればいいですか? – FreckledTerror97
C++の本を読んでみましたか? 'std :: ifstream'の使い方について説明しています。 –