[英]Reading parts of a line (getline())
基本上,该程序在.txt文件中搜索单词,如果找到该单词,它将打印行和行号。 这是我到目前为止所拥有的。
码:
#include "std_lib_facilities.h"
int main()
{
string findword;
cout << "Enter word to search for.\n";
cin >> findword;
char filename[20];
cout << "Enter file to search in.\n";
cin >> filename;
ifstream ist(filename);
string line;
string word;
int linecounter = 1;
while(getline(ist, line))
{
if(line.find(findword) != string::npos){
cout << line << " " << linecounter << endl;}
++linecounter;
}
keep_window_open();
}
解决了。
您正在寻找find
:
if (line.find(findword) != string::npos) { ... }
我会按照您的建议进行操作,然后将行分成由空格分隔的单词或标记,然后在标记列表中搜索所需的关键字。
确保文本文件中名称周围没有空格。 否则,请让ist
采取以下措施:
while(ist >> line)
{
if(line == findword){
cout << line << " " << linecounter << endl;}
++linecounter;
}
我相信您的名称文件的每一行都包含一个名称。 因此使用>>
, ist
会注意是否有多余的空格。
您可以使用正则表达式在行中查找单词。 对C ++的了解不足,无法为您提供详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.