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