我想创建延迟字幕的程序,当我运行下面的代码时,不是从第一行读取。 它像文件的中间一样。
#include "stdafx.h"
#include "iostream"
#include "cstdlib"
#include "fstream"
#include "string"
using namespace std;
int main(int argc, char *argv[]){
ifstream input; //input
char input_file[32]; //names of input and output
cout << "Enter name of input fille: "; ///user gives names of input
cin >> input_file;
input.open(input_file);
if (!input.good()){
cout << "File " << input_file << " dosen't exist." << endl;
return 1;
}
string row;
while (!input.eof()){
getline(input, row);
cout << row << endl;
}
system("pause");
return 0;
}
答案 0 :(得分:0)
首先,eof()
不应放在while()
中,有关详细信息,请参阅here。所以改变
while (!input.eof()){
getline(input, row);
cout << row << endl;
}
到
while (getline(input, row)){
cout << row << endl;
}
看看它是怎么回事。从文件中间读取真的很奇怪。也许你可以进一步分享文件的内容给我们,以便更好地解决问题。
答案 1 :(得分:0)
在阅读任何内容之前,您仍然可以使用input.seekg(0, input.beg)
手动将位置设置为开头。