C++ 读取行的部分(getline())

C++ 读取行的部分(getline()),c++,C++,基本上,这个程序在一个.txt文件中搜索一个单词,如果找到它,它会打印行和行号。这是我到目前为止所拥有的 代码: #包括“std_lib_facilities.h” int main() { 字符串findword; 库特>芬德沃德; 字符文件名[20]; cout>文件名; ifstream列表(文件名); 弦线; 字符串字; int linecounter=1; while(getline(ist,line)) { if(line.find(findword)!=string::npos){

基本上,这个程序在一个.txt文件中搜索一个单词,如果找到它,它会打印行和行号。这是我到目前为止所拥有的

代码:

#包括“std_lib_facilities.h”
int main()
{
字符串findword;
库特>芬德沃德;
字符文件名[20];
cout>文件名;
ifstream列表(文件名);
弦线;
字符串字;
int linecounter=1;
while(getline(ist,line))
{
if(line.find(findword)!=string::npos){

CUT< P>你可以使用正则表达式来查找单词中的单词。不知道足够的C++来帮助你理解细节。

< P>你可以使用正则表达式来查找单词中的单词。不知道足够的C++来帮助你了解细节。

确保文本文件中的名称周围没有空格。否则,让<代码> IST 注意如下事项:

while(ist >> line)
{
 if(line == findword){
         cout << line << " " << linecounter << endl;}
 ++linecounter;
 }
while(ist>>行)
{
如果(行==findword){

不能确保文本文件中的名称周围没有空格。否则,让
ist
注意如下事项:

while(ist >> line)
{
 if(line == findword){
         cout << line << " " << linecounter << endl;}
 ++linecounter;
 }
while(ist>>行)
{
如果(行==findword){

cout我会按照你的建议去做,把这些行分成以空格分隔的单词或标记,然后在标记列表中搜索所需的关键字。

我会按照你的建议去做,把这些行分成以空格分隔的单词或标记,然后在标记列表中搜索所需的关键字。

你正在查找g代表:

您正在寻找:


这正是我想要的。但是我仍然有一个问题。它输出的结果中没有单词。我没有包含!-string::npos,因为我不知道它的意思。我将编辑代码以显示我的内容。!=string::npos是如果单词不在行中,则比较的值。也就是说,如果find返回的结果不等于string::npos,这意味着您已经找到了单词,否则它将忽略该行。忘记它,我包括了!-string::npos,它成功了。我将对它进行一些研究。这正是我要寻找的。但是我仍然有一个问题。它正在输出没有wo的结果rd在其中。我没有包括!-string::npos,因为我不知道你的意思。我将编辑代码以向你展示我拥有的东西。!=string::npos是如果单词不在行中,你比较的值。也就是说,如果find返回的结果不等于string::npos,那么这意味着你已经找到了单词,否则它将被忽略不用管它,我包括了!-字符串::npos,它成功了。我会做一些研究。
if (line.find(findword) != string::npos) { ... }