C ++搜索TXT文件返回int

时间:2014-12-02 20:25:16

标签: c++ function int text-files

下面的代码来自我正在研究的更大的代码。它在txt文件中搜索用户名。如果找到名称,则返回ether一个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;
}

1 个答案:

答案 0 :(得分:0)

在没有看到实际代码的情况下无法准确说明,但看​​起来它总是返回0,因为您要覆盖每个变量UserFound中的内容线。找到名称后,返回1 - 这样您就不必浏览文件的其余部分,并可能导致其他错误。

如果您找不到该文件或文件无法打开,请将该函数的最后一条语句设为return 0;

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