找到一条线的值

时间:2017-11-08 18:12:43

标签: c++

所以我试图在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 ;
}
}

1 个答案:

答案 0 :(得分:1)

您的部分问题是您的行计数器正在读取文件中的总行数,无论您是否找到了您要查找的行。 您需要在while循环中添加一个条件,一旦遇到该单词,就会突破循环。伪代码如下:

while(文件的readline)
      if(在readline中找到的单词)
        出口回路

      增量线
   循环结束

您需要更改while循环以读取一行:

while(std::getline(readFile, candidate)){
    // rest of your logic goes here
}