[英]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.