C++ C++;-以逗号分隔的读入文件行

C++ C++;-以逗号分隔的读入文件行,c++,ifstream,getline,comma,C++,Ifstream,Getline,Comma,我试着查找我想做的事情,但是我找不到我想做的事情。我有一个文本文件,其中有多行,如下所示: 12345,12345,12.34,12345,12345 file >> int1 >> int2 >> double1 >> int3 >> int4; 每一行的格式都是一样的,我想得到每一行并将数字插入到某些变量中。大概是这样的: 12345,12345,12.34,12345,12345 file >> int1 >

我试着查找我想做的事情,但是我找不到我想做的事情。我有一个文本文件,其中有多行,如下所示:

12345,12345,12.34,12345,12345
file >> int1 >> int2 >> double1 >> int3 >> int4;
每一行的格式都是一样的,我想得到每一行并将数字插入到某些变量中。大概是这样的:

12345,12345,12.34,12345,12345
file >> int1 >> int2 >> double1 >> int3 >> int4;
但这对我来说很难做到,因为每个数字之间用逗号分隔。我过去可以在有空格的时候这样做,但是逗号真的让我很讨厌。有什么想法吗?

你可以试试

像这样的

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

前面的建议很有效。但是,如果您可以使用c++11并且需要更健壮的解决方案,我建议使用c++11正则表达式库:

将文件读入
int
,然后读入
char
。可能重复:很抱歉,我看到了那个,但我认为它不同,因为我在逗号后看到了空格。我是个白痴。所以,等等,我对此很陌生,但是既然我使用C++,那么C中的所有东西都应该工作得好吗?不过,关于是否应该使用任何C库函数,仍存在争议。至少,尽量减少使用它们。但对于I/O来说,它们通常更好。@LightnessRacesinOrbit:或者更糟。例如,scanf不应该(我指的是几乎不应该)与%s一起使用。@gongzhitaao:可以是任何字符。。。这是不可靠的。@LightnessRacesinOrbit为真。但是OP有一个假设,即它在每一页上都是相同的格式line@gongzhitaao: ... 依赖于对所有输入保持不变的假设是不稳健的。