ifstream - 移动到下一个单词

Posted

技术标签:

【中文标题】ifstream - 移动到下一个单词【英文标题】:ifstream - Move to next word 【发布时间】:2015-09-15 22:54:02 【问题描述】:

我有点不清楚 ifstream 的功能。我已经搜索过,但找不到这个问题的具体答案。

我想要做的是停在某个单词上,然后对之后的单词做一些事情。

具体来说,我的程序会查看包含单词的文件。每次它看到字符串“NEWWORD”时,它都需要对“NEWWORD”后面的单词做一些事情

string str;
ifstream file;
file.open("wordFile.txt");
while(file >> str)
   //Look through the file
   if(str == "NEWWORD")
        //Do something with the word following NEWWORD
   

     
file.close;

如何告诉 ifstream 转到下一个单词?

P.S: 对不起,如果我在指导方针和规则方面做错了什么。这是我第一次发帖。

【问题讨论】:

【参考方案1】:

每次您使用>> 从流中提取时,它都会自动前进到下一项(这就是您的while 循环如何在文件中不断前进,直到找到“NEWWORD”)。您可以在以下情况下提取下一项你会看到“新词”:

string str;
ifstream file;
file.open("wordFile.txt");
while(file >> str)
   //Look through the file
   if(str == "NEWWORD")
        //Do something with the word following NEWWORD
        if (file >> str) 
             // the word following NEWWORD is now in str
        
   

     
file.close;

【讨论】:

好的。我在想它在循环结束时推进了。谢谢。【参考方案2】:

为了澄清 matt 的回答,在 istream 上使用 >> 将找到下一个不是空格的字符,然后读入它找到的所有字符,直到它到达空格字符或文件结尾。

【讨论】:

以上是关于ifstream - 移动到下一个单词的主要内容,如果未能解决你的问题,请参考以下文章

Linux中vi编辑器常用命令

Vim tips

vi编辑器的常用命令

VIM 移动

VIM学习总结

《Practical Vim》第八章:利用动作命令在文档中移动