9

c++を使用してcsvファイルを読みたいので、ここに私のコードがあります

 int main(){
 ifstream classFile("class.csv");
 vector<string> classData;

 while (getline(classFile, line,',')) // there is input overload classfile
        {
            classData.push_back(line);  

        }
}

ここに私の質問があります:私の問題は、各行の最後の列を読み取るときです(カンマで区切られていないため)、最後の列のデータと次の行の最初のデータを読み取ります。

クラス名、クラスの場所、C++ 教授、ライブラリ、ジョン

次に、className/classLocation/Professor c++/Library/John のように読み取ります。

最後の列を次の行の最初から分離できる方法はありますか? ありがとうございます、混乱させてごめんなさい

4

3 に答える 3

25

ファイルを 1 行ずつ読み取ります。

std::string line;
while(std::getline(stream, line)) ...

各行を istingstream に渡し、フィールドを読み取ります。

std::istringstream s(line);
std::string field;
while (getline(s, field,',')) ...

免責事項: これは、csv ファイルの単純化された解析です。

于 2013-11-12T18:02:35.107 に答える