-1

私は名簿アプリケーションに取り組んでいますが、私が本当に苦労しているのは、.txtファイルからテキストを取得し、各テキストに正しい変数を割り当てることです。各ピースはタブで描かれています。

私はこれに本当に苦労しています。まず、私の論理が私のアプローチで100%健全であるかどうかはわかりませんが、それでも、これが私の頭の中でどのように切り取られているかです。

私がやりたいのは、テキストを1行ずつ見るループを実行し、各行がそれぞれの変数に割り当てられるようにすることです。

現在のコードが正しくなく、ロジックが完全に具体化されていないことはわかっていますが、これが私が持っているものです。

編集:他の変数とそれぞれのデータ型について言及するのを忘れました。名、姓、生年月日/日/年、住所、市区町村、州、郵便番号、電話番号。整数である誕生月/日/年と郵便番号/郵便番号を除いて、それらは事実上すべての文字列です。

編集**テキストファイルは次のようになります

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 に答える