-1

我正在开发一个地址簿应用程序,而我真正苦苦挣扎的部分是从 .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();
}

如果你能帮助我解决这个问题,我将不胜感激。

4

1 回答 1

0
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) 解决了它。

于 2013-01-30T22:21:20.140 回答