Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何确定文件中是否没有名称和lname_C++ - Fatal编程技术网

C++ 如何确定文件中是否没有名称和lname

C++ 如何确定文件中是否没有名称和lname,c++,C++,该程序基本上用于迭代包含元素的文件 Harry Keeling (202)806-4830 Frank James (301)123-3459 Arthur Paul (202)865-9090 Todd Shurn (410)560-8909 Richard Okpala 202 388 410 如果文件中有firstname和lastname,那么我当前的程序输出的电话号码是什么,但如果没有,那么我如何输出电话号码不在我当前的代码中 #include <iostream> #i

该程序基本上用于迭代包含元素的文件

Harry Keeling (202)806-4830
Frank James (301)123-3459
Arthur Paul (202)865-9090
Todd Shurn (410)560-8909
Richard Okpala 202 388 410
如果文件中有firstname和lastname,那么我当前的程序输出的电话号码是什么,但如果没有,那么我如何输出电话号码不在我当前的代码中

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void lookup_name(ifstream&, string&, string&, string&);  // prototype
int main()
{
    ifstream myfile;
    string name, lastname, phonenumber;

    char choice;


    do
    {
        myfile.open("infile.txt");
        cout << "What is the First name? " << endl;
        cin >> name;
        cout << "what is your last name?" << endl;

        cin >> lastname;
        lookup_name(myfile, name, lastname, phonenumber);

        cout << "Do you want to lookup another name<Y/N" << endl;
        cin >> choice;


    } while (choice == 'Y');
    return 0;
}
void lookup_name(ifstream& myfile, string& name, string& lastname, string& phonenumber)
{
    string name1, name2, fullname, secondname, dummy;
    for (int i = 0; i < 5; i++) {
        myfile >> name1 >> name2;
        fullname = name1 + name2;
        secondname = name + lastname;
        if (fullname == secondname) {
            myfile >> phonenumber;
            cout << phonenumber << endl;
            myfile.close();
            break;
        }
        else if (fullname != secondname) {
            myfile >> dummy;
            phonenumber = dummy;
        }

只需从查找函数返回是否找到它

int lookup_name(ifstream& myfile, string& name, string& lastname, string& phonenumber)
{
    string name1, name2, fullname, secondname, dummy;
    for (int i = 0; i < 5; i++) {
        myfile >> name1 >> name2;
        fullname = name1 + name2;
        secondname = name + lastname;
        if (fullname == secondname) {
            myfile >> phonenumber;
            cout << phonenumber << endl;
            myfile.close();
            return 1;
        }
        else if (fullname != secondname) {
            myfile >> dummy;
            phonenumber = dummy;
        }
   }
 return 0;
}
然后使用返回值

if ( ! lookup_name(myfile, name, lastname, phonenumber) ) {
   cout << "Nope, didn't find it!" << endl;
}

建议:将文件加载到结构的std::vector中,然后搜索该向量。?没有学习向量,我正在从文件中读取数据。是学习的好时机。不要使用break,而是使用return。然后,只有在没有找到数字的情况下,才会执行循环后面和之外出现的任何内容。是否将返回值设置为?是否将if语句设置为main im fuzzle?它必须是void函数而不是vale returningyes,替换原始的lookup_名称行,对于这3行,它必须是一个void函数,它将如何与void函数一起工作?只需替换返回0;与库特