C++无法搜索其他偶数订单名称

C++ can't search other even order names

本文关键字:单名 其他 搜索 C++      更新时间:2023-10-16

大家美好的一天,我正在寻求有关如何修复有关在 c++ 中搜索文件的代码的帮助,

示例文本(测试.txt):

name: jason statham
age: 19
name: jeremy renner
age: 17
name: kim tak gu
age: 18
name: donnie yen
age: 20

这是我的代码:

#include<conio.h>
#include<iostream>
#include<string>
#include<fstream>
#include<istream>
#include<windows.h>
void search() //function only of my main program
{
string name="", searchname;
string age="";
ifstream search_sample("test.txt");
cout<<"Enter name to be search: ";
cin.ignore();
getline(cin, searchname);
size_t pos;
while(search_sample.good())
{
    getline(search_sample, name);
    getline(search_sample, age);
    pos=name.find(searchname);
        if(pos!=string::npos)
            {
                cout<<"nRecord Foundnn";
                cout<<name<<"n";
                cout<<age<<"n";
                break;
            }
}   
getch();
main();
}

在搜索Jason Statham和Kim Tak Gu(那些处于奇怪位置的人)时,他们被发现并显示在命令提示符中,然后当我开始搜索那些处于偶数位置的人时,他们没有找到并且没有显示在命令提示符中,谁能帮助我? 提前谢谢。

问题是空行也是行。对于第一人称,nameage被正确读取,但在循环的下一次迭代中,name将为空,因为getline(search_sample, name)读取空行。

getline(search_sample, name);
getline(search_sample, age);
getline(search_sample, blank_line);

似乎是一种改进。

相关文章: