C Programming Question :: ABOUT TEXT FILE I/O 10POINTS

2007-01-14 10:52 pm
f I have a text file like this::

1234 TTFFT
5678 FFTTF
9875 ..... (the remaining data are the same structure)

I want to write a program to store first whole integer of each line in a int array
and the char of each line in a char array
UNTIL EOF

How can I write a program in C like that???
更新1:

Sorry, 我意思指要讀左第一個做integer 先 之後 每個 character 再讀入 一個ONE-DIMENSIONAL-ARRAY, 姐係-- TTFFT 就會讀入為, T=key[0], T=key[1], F=key[2] .... 我用fscanf 同 fgetc 都做過, 個program都crash 左 我想問邊做好d...俾一個segement的script我就得 仲用, while ((fscanf(spIn, "%d ", num[i]) )!=EOF) fscanf可唔可以咁樣cehck EOF

更新2:

多謝幫忙 可不可以給e-mail我

回答 (2)

2007-01-15 5:09 am
✔ 最佳答案
你的「the char of each line in a char array」意思是每行的 characters array 至一個 char array 的 array?希望我的理解沒錯。

設你的上限為 1000 (如果上限不同你可以自行變動)。

int num[1000];
char text[1000][6]; //each element is a char array of size 6.
int counter = 0;

while(scanf("%d%s", &(num[counter]), &(text[counter]) == 2)
{
counter++;
}


2007-01-15 01:29:05 補充:
回應你的補充:如果你要讀 file,你在之前加上 freopen("input.txt","r",stdin); 就可以。至於你想每個 character 再讀入 一個ONE-DIMENSIONAL-ARRAY,我之前的 code 已經做了。其實 scanf 裡面 %s 是指 string,它會將之後的一段 string 讀進你的 variable address 裡。例如第一行的第一個字就是 text[0][0], 第二個字就是 text[0][1], ...。

2007-01-15 01:31:16 補充:
還有,scanf 的 return value 已經可以讓你知道你的 input 還有沒有。不用直接 check EOF。你的 program crash 是不是因為你用 scanf 或 fscanf 時放進去的不是 memory address?例如如果你要 read 一個 integer。int i;scanf("%d", &i);你可以 check 下有沒有 & 這個符號。

2007-01-15 01:31:57 補充:
再有其他問題歡迎寄信給我,大家交流一下。 ^^

2007-01-15 11:03:19 補充:
你選擇「寄信給他/她」就可以,也可以寄給我這個帳號 @yahoo.com.hk ^^
2007-01-19 3:18 pm
very clever way!
nice and neat.


收錄日期: 2021-04-23 18:50:18
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070114000051KK02528

檢視 Wayback Machine 備份