我试图读取文件的第一行,但是当我尝试将文本保存到文件中时,它会打印出整个文件,而不仅仅是一行。该工具也不照看休息或空格。
我正在使用以下代码:
//Vocabel.dat wird eingelesen
ifstream f; // Datei-Handle
string s;
f.open("Vocabeln.dat", ios::in); // Öffne Datei aus Parameter
while (!f.eof()) // Solange noch Daten vorliegen
{
getline(f, s); // Lese eine Zeile
cout << s;
}
f.close(); // Datei wieder schließen
getchar();
答案 0 :(得分:2)
摆脱你的while
循环。替换这个:
while (!f.eof()) // Solange noch Daten vorliegen
{
getline(f, s); // Lese eine Zeile
cout << s;
}
见到这个:
if(getline(f, s))
cout << s;
<小时/> 编辑:响应新要求“它读取了我可以在第二个变量中定义的行吗?”
为此,你需要循环,依次阅读每一行,直到你读到你关心的那一行:
// int the_line_I_care_about; // holds the line number you are searching for
int current_line = 0; // 0-based. First line is "0", second is "1", etc.
while( std::getline(f,s) ) // NEVER say 'f.eof()' as a loop condition
{
if(current_line == the_line_I_care_about) {
// We have reached our target line
std::cout << s; // Display the target line
break; // Exit loop so we only print ONE line, not many
}
current_line++; // We haven't found our line yet, so repeat.
}