2017-10-16 134 views
0

如何阅读逗号分隔双打而没有空格?使用fscanf读取逗号分隔双打

我试过以下内容:fscanf(file, "%lf[^,], &x)但它不起作用。

该文件将采用以下格式:

1.0,2.0,4.0 
3.0,6.0,1.0 
+0

尝试'的fscanf(文件, “%LF,”,&X)' – BLUEPIXY

+0

参见[问题扫描到阵列中的C](https://stackoverflow.com/questions/46761990/problems-scanning-into -array-在-C)。 –

回答

2

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

#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); 
} 
+1

请注意'!= EOF'条件并不是一个好主意。如果用户输入一个字母而不是逗号,那么您的循环将无限期地继续。由于您一次扫描一个值,因此您应该查找“== 1”。 –