如何使用一个变量读取不同的变量,该字符串具有文件中带有空格的字符串

时间:2019-04-17 15:42:37

标签: c++

所以我有一个函数,应该从文件的每一行读取6个变量,然后将其显示给控制台,问题是字符串RenterName如果包含空格,则代码无法正常工作。这是我的代码:
...

  void displayRentersInformations() {
int RenterID, Fine;
string RenterName, FlatNumber, Status;
ifstream in;
in.open("RentersInformation.txt");
if (!in) {
    cout << "There is no information to be shown! \n";
}
else {
    while (in >> RenterID >> RenterName >> FlatNumber >> Fine >> Status) {

        cout << RenterID << RenterName << FlatNumber << Fine << Status << endl;

    }
}
in.close();
}

这是文件中文本的示例:

223456000 Sami Ahmed A7 6000付费

因此,萨米·艾哈迈德(Sami Ahmed)应该以字符串形式存储在RenterName中,但是它们之间的空间造成了问题,我尝试使用getline,但是它不起作用,或者我只是没有以正确的方式使用它,如何解决此问题?

1 个答案:

答案 0 :(得分:0)

  

问题是字符串RenterName如果包含空格,则代码无法正常工作。

否,该代码仍按预期的方式工作。考虑2个变量ab以及文件中的以下行:

Hello from file

现在这样做:

in >> a >> b

将读取“ Hello”和“ from”,而不是“ Hello from”和“ file”或“ Hello”和“ from file”。

如果希望变量包含空格,则需要更改文件格式。例如,您可以使用定界符进行分隔:

Hello, from file

,然后使用std::getline()读取整行,然后使用定界符分割。