在以逗号分隔的文件行中读取

C++ - Read in file lines separated by a comma

本文关键字:文件 读取 分隔      更新时间:2023-10-16

我试着查找我要做的事情,但我找不到我要做的具体内容。我有一个文本文件,有多行,看起来像这样:

12345,12345,12.34,12345,12345

每一行都是相同的格式,我想得到每一行并将数字代入特定的变量。像这样:

file >> int1 >> int2 >> double1 >> int3 >> int4;

但是这对我来说很难做到,因为每个数字之间都有逗号分隔。以前有空格的时候我可以这样写,但是逗号真的让我很困惑。什么好主意吗?

char ch;
file >> int1 >> ch >> int2 >> ch >> dbl >> ch >> int3 >> ch >> int4;

你可以试试fscanf.

像这样?

 fscanf(filepointer, "%d,%d,%f,%d,%dn", &int1, &int2, &double1, &int3, &int4);

前面的建议效果很好。但是,如果您可以使用c++11并且需要更健壮的解决方案,我建议使用c++11正则表达式库:http://en.cppreference.com/w/cpp/regex