PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
jackyepson
Regular Member
 
jackyepson的大頭照
 

加入日期: Oct 2004
您的住址: 虛擬的世界
文章: 66
Unhappy 關於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通通分開存進陣列,連空格都會放進陣列裡,請幫忙指點迷津
     
      
舊 2006-10-02, 04:36 PM #1
回應時引用此文章
jackyepson離線中  
swdwo
Major Member
 

加入日期: Aug 2003
您的住址: Taipei
文章: 238
你的問題癥結點在GetC 及 沒有判斷讀進來的值是否為數字以外的值!!
你仔細想想就知道了 , 查ㄧ下GetC的用法吧!!
 
舊 2006-10-02, 04:56 PM #2
回應時引用此文章
swdwo離線中  
jackyepson
Regular Member
 
jackyepson的大頭照
 

加入日期: Oct 2004
您的住址: 虛擬的世界
文章: 66
小弟已經做出空格與換行的判斷,如下
while((num=getc(fp))!=EOF)
{
if(num!=' '|| num!='\n')
{
str[i]=num;
printf("%c",str[i]);
//i++;
}
}
可是還是不會把4.6合在一個陣列裡,另外為什麼顯示出來的結果會還是有空格,而且如果把i++加入就會發生程式中斷,請高手再多給一些指點吧
舊 2006-10-02, 06:40 PM #3
回應時引用此文章
jackyepson離線中  
stevenlin
Basic Member
 
stevenlin的大頭照
 

加入日期: Oct 2005
文章: 13
你可以使用fgets(),或是fscanf()
getc()應是Gets character from stream.
舊 2006-10-02, 10:57 PM #4
回應時引用此文章
stevenlin離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是01:10 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。