所以我试图在C ++中创建一个程序,从文本文件中找到一行单词并显示行号。 编译时我没有任何错误,但是行值总是一个奇怪的数字,如1972007907。
代码:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::ifstream readFile ("example.txt");
if( readFile.is_open() )
{
int line;
std::cout << "Write the word you're searching for\n" ;
std::string word ;
std::cin >> word ;
std::string candidate ;
while( readFile >> candidate )
{
line++;
}
std::cout << "The word " << word << " has been found " << " on line " <<line<<"\n";
}
else
{
std::cout << "Error! File not found!\n" ;
return 1 ;
}
}
答案 0 :(得分:1)
您的部分问题是您的行计数器正在读取文件中的总行数,无论您是否找到了您要查找的行。 您需要在while循环中添加一个条件,一旦遇到该单词,就会突破循环。伪代码如下:
while(文件的readline)
if(在readline中找到的单词)
出口回路
增量线
循环结束
您需要更改while循环以读取一行:
while(std::getline(readFile, candidate)){
// rest of your logic goes here
}