none
C++中如何设置输入流的分割符? RRS feed

  • 问题

  • 用输入流输入数据默认以空格作为分割cin>>data,但有时数据是以其他字符分割的,如','

    比如想从文件中读入这样的数据,并建立锯齿矩阵存储

    1,2,3,4,5
    6,7,8,9,10,11,20

    我想如下处理:

    vector< vector<int> > matrix;
    string line;
    while( getline(cin, line) )
    {
    vector<int> row;
    istringstream sstr(line);
    istream_iterator<int> iter(sstr), eof;
    copy(iter, eof, back_inserter(row));
    matrix.push_back(row);
    }

    实际之读入了每行第一个数据,把源文件中','换成空格问题就解决了。
    但我想不改变源文件。也不想写一大堆循环判断处理,请问该怎么办?
    查了basic_istream的函数,好像没有设置定界符的。
    2009年7月9日 12:40

答案