我有一個 numbers.txt 檔案,其中有一些像這樣格式的資料 number0 :23.95 number1 :90.25 number2 :77.31 number3 :27.84 number4 :90.03 number5 :19.83,我想要 C 編程語言中所有浮點數(在這種情況下為 23.95 90.25 77.31 27.84 90.03)的總和。我只是不知道如何獲取這些浮點數,如果 numbers.txt 本來34.22 44.56 89.44就很容易,但我不能在這里更改檔案格式。任何人都可以幫忙嗎?提供numbers.txt的截圖
uj5u.com熱心網友回復:
您可以fscanf用于此作業:
#include <stdio.h>
int main() {
FILE *fp = fopen("numbers.txt", "r");
if (fp == NULL) {
fprintf(stderr, "Cannot open %s\n", "numbers.txt");
return 1;
}
int count = 0;
double d, sum = 0.0;
while ((fscanf(fp, " number%*[0-9] :%lf", &d) == 1) {
sum = d;
count ;
}
fclose(fp);
printf("read %d numbers, sum: %g\n", count, sum);
return 0;
}
上面的代碼將比檔案內容更嚴格地匹配檔案內容fscanf(fp, "%*s :%lf", &d):只要檔案內容匹配,掃描就會不斷迭代:可選空格后跟緊跟number數字的字符,然后是可選空格,冒號,更多可選空格和一個浮點數。
uj5u.com熱心網友回復:
檢查該行是否有“:”字符,可能使用
strchr.如果有一個冒號,決議它后面的一個字符,可能使用
atof.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456850.html
