【问题标题】:Using fscanf to read comma delimited doubles使用 fscanf 读取逗号分隔的双精度
【发布时间】:2017-10-16 01:06:58
【问题描述】:

我如何阅读没有空格的逗号分隔双精度数?

我尝试了以下方法:fscanf(file, "%lf[^,], &x) 但它不起作用。

文件将采用以下格式:

1.0,2.0,4.0
3.0,6.0,1.0

【问题讨论】:

标签: c scanf delimiter comma


【解决方案1】:

您直接使用,,而不是使用[^,] 正则表达式。

#include <stdio.h>  
int main(){  
FILE *fp;  
double buff[255];
int i=0;
fp = fopen("file.txt", "r");  
while(fscanf(fp, "%lf,",&buff[i++])!=EOF){  
printf("%0.1lf ", buff[i-1] );  
}  
fclose(fp);  
}  

【讨论】:

  • 请注意,!= EOF 条件并不是一个好主意。如果用户键入字母而不是逗号,那么您的循环将无限期地继续。您应该查找== 1,因为您一次扫描一个值。
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多