![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 疑難雜症區
(https://www.pcdvd.com.tw/forumdisplay.php?f=34)
- - 關於C語言
(https://www.pcdvd.com.tw/showthread.php?t=659230)
|
|---|
關於C語言
想請問高手~在文件檔裡有
46 56 42 94 32 64 78 34 92 76 51 72 這些的數字,要如何把46.56.42這些存進陣列裡,以下是我的部份程式碼 FILE *fp; int num; char stri[256]; int i=0,j=0; fp = fopen("textdata.txt","r"); while((num=getc(fp))!=EOF) { str[i]=num; printf("%d",str[i]); i++; } 我做的這個陣列一次只能放一個數字就是4.6.5.6通通分開存進陣列,連空格都會放進陣列裡,請幫忙指點迷津 :cry: |
你的問題癥結點在GetC 及 沒有判斷讀進來的值是否為數字以外的值!!
你仔細想想就知道了 , 查ㄧ下GetC的用法吧!! |
小弟已經做出空格與換行的判斷,如下
while((num=getc(fp))!=EOF) { if(num!=' '|| num!='\n') { str[i]=num; printf("%c",str[i]); //i++; } } 可是還是不會把4.6合在一個陣列裡,另外為什麼顯示出來的結果會還是有空格,而且如果把i++加入就會發生程式中斷,請高手再多給一些指點吧 :cry: |
你可以使用fgets(),或是fscanf()
getc()應是Gets character from stream. |
| 所有的時間均為GMT +8。 現在的時間是02:40 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。