2017-10-16 22 views
0

カンマ区切りの倍精度浮動小数点数を空白なしで読み取るにはどうすればよいですか?fscanfを使用してコンマ区切りの倍精度を読み取る

私は以下を試しました:fscanf(file, "%lf[^,], &x)しかし、動作しません。

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

(X& "は、%LF" ファイル) ' – BLUEPIXY

+0

見る【課題Cの配列に走査(https://stackoverflow.com/questions/46761990/problems-scanning-into'関数fscanfを試します-array-in-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つの値をスキャンするので、 '== 1 'を探すべきです。 –

関連する問題