gpt4 book ai didi

c++ - 您能否验证我的代码是否正确地将字符串保存到结构?

转载 作者:行者123 更新时间:2023-11-28 05:24:31 27 4
gpt4 key购买 nike

我正在尝试从具有三个输入的 .txt 文件中归档输入信息,即(Mike Jones 60)并将它们插入结构 C++ 以用于我的屏幕输出。

struct Person {
string name;
int age;
};
void addData()
{
Person aPerson;
char fileName[80];
cout << "Please enter the file name: ";
cin.getline(fileName, 80);
//string fullName;
ifstream fin(fileName);
string tmp;
stringstream ss;
while (!fin.eof()) {
getline(fin, aPerson.name);
aPerson.name = tmp;
getline(fin, tmp);
ss << tmp;
ss >> aPerson.age;
ss.clear();
getline(fin, tmp);
ss.clear();
cout << aPerson.name << aPerson.age << endl;
}
}

最佳答案

此代码将读取以下格式的数据:

Joe Bloggs
42

Franziska von Karma
23

Jeff Jefferson
84

你的输入数据是这样的吗?

如果每人一行,并且每个人的名字中有恰好两个词,您可以使用third parameter of getline to set a custom delimiter - 它不会读取整行,而是读取到一个空格。

Joe Bloggs 42
Jeff Jefferson 84
Amy Anderson 57

处理这些数据:


while (!fin.eof()) {
string firstname;
getline(fin, firstname, ' ');
string surname;
getline(fin, surname, ' ');
aPerson.name = firstname + " " + surname;
string age;
getline(fin, age);
ss << age;
ss >> aPerson.age;
cout << aPerson.name << aPerson.age << endl;
ss.clear();
}

如果您可以获取逗号分隔数据格式、制表符分隔格式或任何非空格分隔的数据,则可以使用该分隔符并分两步而不是三步提取数据。

关于c++ - 您能否验证我的代码是否正确地将字符串保存到结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40826024/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com