簡體   English   中英

讀取行的一部分(getline())

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM