使用getline和>>

时间:2017-09-03 18:06:01

标签: c++ arrays ifstream

我试图将数据加载到类数组中并使用读入的数据设置成员变量。某些数据中包含空格,例如名称,地址等。所以我使用getline读取这个数据。其他的是整数或单个词,所以我用了cin。我的现有代码有两个问题......

  1. 没有正确读取变量(我认为它与使用cin / getline有关?)

  2. 数组正在多次读取文件(这是否与我的if条件有关,检查文件是否仍然可读?我应该使用getline(文件,字符串)条件?我试过这个,但没有运气)。

  3. 以下是现有代码:

        string tempName;
        string tempAddress;
        int tempCost;
        int tempNumber;
        ifstream myFile("text.txt");
        if (myFile.is_open())
        {
            for (int x = 0; x < 5; x++)
            {       
                    getline(myFile, tempName);
                    getline(myFile,tempAddress);
                    myFile>> tempCost;
                    myFile>> tempNumber;
    
    
                    person[x].setName(tempName);
                    person[x].setAddress(tempAddress);
                    person[x].setCost(tempCost);
                    person[x].setNumber(tempNumber);
            }
        }
        else
        {
            cout << "Unable to open file." << endl;
        }
        myFile.close();
    

    以下是我试图阅读的两个例子:

    乔史密斯 14樱桃街 5
    100个
    希拉里威尔肯斯 52主干道
    134个
    3

    编辑:Person是一个类数组。我正在设置它的成员变量。人在我的主要宣布。对不起忘了包含这个。声明如下:

    人员[MAX_PEOPLE]; (最多的人是5.我只是在摘录中替换它。)

0 个答案:

没有答案