繁体   English   中英

在C ++中读取具有多个定界符的文件

[英]Reading files with multiple delimiters in c++

我有一个要读取的文本文件,但是它的格式不是很漂亮(故意)。

我必须将数据排序到一个结构中,并且数据类型不同,因此首先将它们排序到一个数组中,以便可以根据顺序将它们排序到结构中。 我编写了一条代码来获取一行,然后测试其中是否有空格,如果存在空格,它将使用''作为分隔符再次对其进行扫描。 如果没有,它只是将字符串存储到数组中。

这是代码:

int nextw(ifstream &file, string array[]){

    string line;
    string token;
    stringstream iss;
    size_t foundspace;

    int i = 0;

    while(getline(file, line)){
            iss << line;

            foundspace = line.find(" ");
            if(foundspace != string::npos){
                    while(getline(iss, token, ' ')){
                            array[i++] = token;
                    }
            }
            else
                    array[i++] = line;
    }
    return i;
}

它返回数组的计数。

问题是它跳过了一行数据。 例如,我有:

data data data data data
data
data
data
data
data
skipped_data skipped_data
data
data
etc...

仅跳过2行带有空格定界符的数据的单行。 该行不会被视为该行是单个字符串,而是根本不在数组中。

编辑:添加了更多代码

没关系,我发现“ >>”代替了getline()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM