从具有不同格式的文件中读取行

时间:2019-05-16 11:49:55

标签: c++ string scanf

我试图逐行读取输入文件,并使用sscanf进行检查和提取。但是这些行尽管每行总是有两个术语,但是它们的格式可以不同,例如该文件可能如下所示:

valueone 0
valuetwo 55
valuethree version

如果只有字符串格式,然后是数字,我总是可以按以下方式进行扫描:(int test;

test = sscanf(line, "%s%f", title, &num)

但是如上所述,有时行的格式为%s%s(例如,第三行sscanf(line, "%s%s", title, strvalue)),那么如何编写sscanf的参数以允许两种行格式? / p>

1 个答案:

答案 0 :(得分:1)

  

那么我如何编写sscanf的参数以允许两种行格式?

您不能,sscanf根本无法做到这一点。您可以做的就是始终使用%s %s,然后尝试使用strtodstrtof将第二个字符串解析为double。