我必須從檔案中讀取資料并將資料存盤在結構中。(您可以看到下面的結構)每行由 5 個整數和 1 個字符變陣列成。每行必須是“結構行”的索引。
struct line {
int lineno;
int x1;
int y1;
int x2;
int y2;
char color;
int next;
};
struct line memorybuffer[25];
例如在這個檔案中:
1 10 10 50 60 R
3 80 10 10 10 B
4 40 20 40 0 Y
我應該得到:
memorybuffer[0].lineno = 1;
memorybuffer[0].x1 = 10;
memorybuffer[1].lineno = 3;
我找不到如何逐行逐字讀取資料(整數 字符),并將其存盤在行結構中。
你能幫我找到路嗎?非常感謝。
uj5u.com熱心網友回復:
我找不到如何讀取資料
請閱讀手冊頁的fscanf,可滿足您的需求完全。
uj5u.com熱心網友回復:
正如Shawn所暗示的那樣,您可以一次讀取一行檔案fgets()并使用sscanf()以下命令對其進行決議:
#include <stdio.h>
struct line {
int lineno;
int x1;
int y1;
int x2;
int y2;
char color;
int next;
};
struct line memorybuffer[25];
int main() {
char line[256];
int i;
for (i = 0; i < 25 && fgets(line, sizeof line, stdin);) {
if (sscanf("%d %d %d %d %d %c\n",
&memorybuffer[i].lineno,
&memorybuffer[i].x1,
&memorybuffer[i].y1,
&memorybuffer[i].x2,
&memorybuffer[i].y2,
&memorybuffer[i].color) == 6) {
/* record was parsed correctly */
i ;
} else {
printf("invalid format: %s", line);
}
}
...
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/395031.html
