我有一个要阅读的文本文件,但它的格式并不漂亮(故意)。
我必须将数据排序到一个结构中,并且数据类型不同,所以首先我将它们排序到一个数组中,这样我就可以根据顺序将它们排序到结构中。我做了一个代码来获取一行,然后测试它是否有空格,如果有空格,它会使用''作为分隔符再次扫描它。如果没有,它只是将字符串存储到数组中。
这是代码:
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 字数据。该行没有被视为该行是单个字符串,它根本不在数组中。
编辑:添加更多代码