C++ 在文本文件中搜索整数

C++ 在文本文件中搜索整数,c++,text,C++,Text,我有一个文本文件。 其中存储的所有值都是整数。 当我比较我搜索的号码和文本文件中存储的号码时,结果不正确 我的代码: ifstream infile ("h1.txt"); if (!infile) { cout << "Can't open file" << endl; exit (EXIT_FAILURE); } int n; infile >> n; while(!infile.eof()){ if (n!=search)

我有一个文本文件。 其中存储的所有值都是整数。 当我比较我搜索的号码和文本文件中存储的号码时,结果不正确

我的代码:

ifstream infile ("h1.txt");
if (!infile)

{
    cout << "Can't open file" << endl;
    exit (EXIT_FAILURE);
}
int n;
infile >> n;
while(!infile.eof()){
    if (n!=search)
    {
        return false;
    }
    else{
        return true;
    }
    infile>>n;
}
ifstream-infle(“h1.txt”);
如果(!infle)
{
cout n;
而(!infle.eof()){
如果(n!=搜索)
{
返回false;
}
否则{
返回true;
}
填充>>n;
}

<> P>编译器为什么认为结果是错误的,即使<代码> n>代码>等于搜索?

< p>你只从文件中读取第一个数是否正确。当代码达到<代码>返回< /代码>时,函数的执行结束。< /p> < p>我解决了这个问题,数字只存储最后一个值,即数值。 如果搜索结果与搜索结果相同,则条件为true
bool值也将为true,但当文件读取的值不等于搜索值时,编译器也将在else部分中输入,并使bool变量为false,尽管搜索已建立!(尤其是在文件开头找到搜索编号时),所以我通过remove else解决了这个问题,并使bool变量为true,当且仅当搜索在文件中建立时。希望您理解

请修复您糟糕的缩进循环头中的错误处理不正确。流可能会因
eof
以外的其他原因而失败。更惯用且更简单:
while(infle>>n){/*循环体*/}
谢谢你,欧文,你说得对,但问题仍然存在,即使我用bool变量替换return!!我不确定,但你是说你做了类似的事情吗?