簡體   English   中英

如何逐字閱讀文件並找到每個單詞的位置?

[英]How to read a file word by word and find the position of each word?

我正在嘗試逐字讀取文件並對每個單詞執行一些實現。 將來我想知道每個單詞的位置在哪里。 位置是該行中的行號和字符位置。 如果字符位置不可用,我只需要知道當我到下一行時我正在讀文件。 這是我現在的示例代碼:

string tmp;
while(fin>>tmp){
     mylist.push_back(tmp);
}

我需要知道鰭何時進入下一行?!

解決此問題的一種簡單方法是使用std::getline ,運行自己的計數器,並使用額外的字符串流將行內容拆分為單詞,如下所示:

string line;
int line_number = 0;
for (;;) {
     if (!getline(fin, line)) {
         break;
     }
     istringstream iss(line);
     string tmp;
     while (iss >> tmp) {
         mylist.push_back(tmp);
     }
     line_number++;
}

“我需要知道鰭何時進入下一行”

流的運算符>>無法實現這一點。 您可以逐行讀取輸入並使用臨時istringstream對象分別處理每一行:

std::string line, word;
while (std::getline(fin, line)) {

    // skip empty lines:
    if (line.empty()) continue;


    std::istringstream lineStream(line);
    for (int wordPos = 0; lineStream >> word; wordPos++) {
        ...
        mylist.push_back(word);
    }
}

只是不要忘記#include <sstream>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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