我是 C 語言編程的新手,我的學校作業要求我使用 I/O 重定向并嚴格使用 scanf 從文本檔案中讀取資料。
我主要檢查我撰寫的代碼是否有意義并且是一種合理的方法,因為我無法檢查它當前是否有效(可能會或可能不會掉落我的筆記本電腦)。
這是我到目前為止所寫的內容。
#include <stdio.h>
#include <math.h>
int main(void){
int readingsLen = 5040;
float readings[readingsLen];
float* readingsPtr = (float*)readings;
while (scanf("%.2f", readingsPtr) != EOF){
readingsPtr ;
}
}
此外,這是文本檔案的樣子。添加了 \n 以顯示行結束的位置。
22.12 22.43 25.34 21.55 \n
uj5u.com熱心網友回復:
您可以使用指標:
#include <stdio.h>
#define LEN 5040
int main(void){
float readings[LEN];
for(float *readingsPtr = readings; readingsPtr < readings LEN; readingsPtr ) {
switch(scanf("%f", readingsPtr)) {
case EOF:
return 0;
case 0:
printf("failed to read float\n");
return 1;
default:
break;
}
printf("read %.2f\n", *readingsPtr);
}
}
這是結果輸出:
read 22.12
read 22.43
read 25.34
read 21.55
我發現這個版本使用索引而不是指標,更易于閱讀:
#include <stdio.h>
#define LEN 5040
int main(void){
float readings[LEN];
for(size_t i = 0; i < LEN; i ) {
switch(scanf("%f", readings i)) {
case EOF:
return 0;
case 0:
printf("failed to read float\n");
return 1;
default:
break;
}
printf("read %.2f\n", readings[i]);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/536615.html
標籤:Cio重定向
下一篇:C中的純指標表示法
