从文本文件中读取行并在 c++ 中分配不同的变量
Reading lines from a text file and assigning different variables in c++
我正在开发一个地址簿应用程序,我真正挣扎的部分是从.txt文件中获取文本并为每段文本分配正确的变量。 每个部分都用一个选项卡描绘。
我真的很挣扎这个。首先,我不确定我的逻辑是否 100% 合理,但尽管如此,这就是它在我的脑海中出现的方式。
我想做的是运行一个循环,逐行查看文本,每一行都分配给其各自的变量。
我知道我当前的代码不正确,逻辑也没有完全充实,但这就是我所拥有的。
编辑:我忘了提到其他变量及其各自的数据类型。 名字,姓氏,出生月份/日期/年份,地址,城市,州,邮政编码,电话号码。 它们几乎都是字符串,除了出生月/日/年和邮政编码/邮政编码是整数。
编辑**文本文件是这样的
Joe Shmoe 1 1 1980 123Main Capital CA 90210 123-456-7890
Jane Doe 2 5 1960 321Elm Boise ID 12345 987-654-3210
等等等等。我需要做的是通读文本文件并为每个属性填充数组元素(第一个、最后一个、月、日、年、地址、城市、州、邮政编码、电话)
void extPersonType::getInfo()
{
readFile.open("input.txt",ios::in);
if (readFile.is_open())
{
while (readFile.good())
{
for (int i = 0; !readFile.eof(); i++)
{
getline(readFile,lines[i]);
personInfo[i].setFirstName(lines[i]);//change this
cout << personInfo[i].getFirstName();
}
}
readFile.close();
}
如果你能帮我解决这个问题,我将不胜感激。
for (int i = 0; !readFile.eof(); i++)
{
getline(readFile,lines[i],'t');
personInfo[i].setFirstName(lines[i]);
cout << "First Name: "<<personInfo[i].getFirstName()<< endl;
getline(readFile, names[i],'t');
personInfo[i].setLastName(names[i]);
cout << "Last Name: "<<personInfo[i].getLastName()<<endl;
getline(readFile, addresstmp[i],'t');
address[i].setAddress(addresstmp[i]);
cout << "Address: "<< address[i].getAddress() << endl;
getline(readFile, city[i],'t');
address[i].setCity(city[i]);
cout << "City: "<< address[i].getCity()<<endl;
getline(readFile,state[i],'t');
address[i].setState(state[i]);
cout << "State: "<<address[i].getState()<<endl;
getline(readFile,zip[i],'t');
address[i].setZip(zip[i]);
cout << "Zip: "<<address[i].getZip()<<endl;
getline(readFile,phoneNumber,'t');
cout << "Phone: "<<phoneNumber<<endl;
getline(readFile,contactType);
cout <<"Contact type: "<<contactType<<endl<<endl;
}
}
readFile.close();
这就是我一直在寻找的。 getline(file, string, deliniation) 解决了它。
相关文章:
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 为什么我可以使用比分配的内存更多的内存
- 使用RAII在给定次数的迭代后重新分配资源