1

1行に3つの整数を含むファイルがあります。行を読み取るときは、文字列ストリームを使用して値を区切りますが、最初の値をそのまま読み取ります。他の2つはゼロとして読み取られます。

ifstream inputstream(filename.c_str());
if( inputstream.is_open() ){

    string line;
    stringstream ss;

    while( getline(inputstream, line) ){
        //check line and extract elements
        int id;
        double income;
        int members;

        ss.clear();
        ss.str(line);
        ss >> id >> income >> members;*emphasized text*
    }
}

上記の場合、idは正しく抽出されますが、収入とメンバーには実際の値ではなくゼロが割り当てられます。

編集:解決済み

どうでも。コードは正しく機能します。エラーは私のprintステートメントにありました。毎回同じインデックスで配列を出力するforループがありました。

4

1 に答える 1

1

ファイルから直接読んでみませんか?

while( inputstream ) {
    if( ! inputstream >> id ) ...
    if( ! inputstream >> income ) ...
    if( ! inputstream >> members ) ...
}
于 2010-05-08T21:09:13.153 に答える