C++ 搜索 TXT 文件返回 int.

C++ Search TXT File return int

本文关键字:返回 int 文件 TXT 搜索 C++      更新时间:2023-10-16

下面的代码来自我正在处理的一个更大的代码。它在 txt 文件中搜索用户名。如果找到该名称,则返回以太币 int 0 或 int 1。它可以编译并运行,但无论用户是否在 txt 文件中,它总是运行关闭操作,让我认为函数每次都返回 0。

#include <iostream>
#include <fstream>
#include <string>
int DoThis(int UF);
int main(void)
{
    int z;
    z = DoThis(0);
    if(z == 1){RunThing;}
    else if(z == 0){ShutDown;}
return 0;
}
int DoThis(int UF)
{
int offset;
std::cin >> NameToCheck;
Myfile.open("FilePath")
if(Myfile.is_open())
    {
        while(!Myfile.eof())
        {
            getline(Myfile,line);
            if((offset = line.find(NameToCheck, 0)) != std::string::npos) 
            {
                while(Myfile >> FirstName >> LastName)
                {
                    return = 1;
                }
            }
        }
    Myfile.close();
    }
    else
    {
        std::cout << "File not found.";
    }
return 0;
}

如果不看到实际代码就无法准确判断,但看起来它总是返回 0,因为您正在覆盖每行变量UserFound中的内容。找到名称后,返回 1 - 这样您就不必遍历文件的其余部分并可能导致其他错误。

return 0;函数的最后一个语句,以防找不到它或无法打开文件。

要逐行读取文件,不需要第二个while循环。您所需要的只是检查line字符串是否包含NameToCheck字符串。如果找到,则返回 1。如果到达文件末尾,则返回 0。