gpt4 book ai didi

c++如何显示字符串搜索关键字及其确切的行号?

转载 作者:行者123 更新时间:2023-11-30 03:13:58 25 4
gpt4 key购买 nike

我有一个 C++ 程序员先问我一个文件名,然后问我搜索词。包含它的行应该在前面显示其确切的行号。例如: 20:XXXXXX。我这里有代码。我不知道如何显示行号。请帮我。

#include <iostream>
#include <string> //to work with strings
#include <fstream>
using namespace std;

int main()
{
int occurenceNumber = 0;
int counter = 0;
int lineNum;
string fileName;
string toSearch;
string lineRead;

ifstream inputFile;

cout << "Enter the file name: ";
cin >> fileName;


inputFile.open(fileName);

if(!inputFile){
cout << "Error opening file, or file doesn't exist!";
cout << "Try again!\n";

return 0;
}


cout << "Enter string to search for: ";
cin >> toSearch;


cin.ignore();

while(getline(inputFile, lineRead))
{


if(lineRead.find(toSearch, 0) < lineRead.length())
{
occurenceNumber++;
cout << lineRead << endl;

}

}


cout << toSearch << " was found " << occurenceNumber;
cout << " times. \n";


inputFile.close();


return 0;
}

最佳答案

您设置了一个计数器变量。你只是忘了使用它。这是代码中的 while 循环,其中包含您定义但忘记使用的计数器变量。

如果将 counter++ 放在 while 循环的开头,第一行就是第 1 行。另一方面,如果将它放在循环的末尾,第一行就是第 0 行。

while(getline(inputFile, lineRead))
{
counter++;
if(lineRead.find(toSearch, 0) < lineRead.length())
{
occurenceNumber++;
cout << counter << ":" << lineRead << endl;

}

}

关于c++如何显示字符串搜索关键字及其确切的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com