| 會員 ![]() | 【求助] c語言讀檔 #include<stdio.h> void main(void) { FILE *fp1; FILE *fp2; fp1=fopen("hw1.txt","r"); fp2=fopen("ans1.txt","w"); char ch2[100]; double ch1; double sum=0; int num=0; do { fscanf(fp1,"%s\n",ch2); ch1=atof(ch2); if(ch1>=0) { sum=sum+ch1; } else { ch1=0; } num=num+1; } while(ch2[0]!='E'); fprintf(fp2,"%f\n",sum); fprintf(fp2,"%d\n",num); fclose(fp1); fclose(fp2); } ========================================== 我想從hw1.txt讀入檔案如果數值是正的就相加負的就不要相加並算出共有幾個數值.執行到'E'訧停止並把結果sum與num輸入到ans1.txt.程式有錯幫看看哪裡錯如何改?? hw1.txt的內容:36.25 27.3 -35.2 0 27 -3.14 24.87 9.14 5.82 154.8 E (-_-) |
| 回覆 |
| 會員 ![]() | 本來想用TC試試 不過TC老是給我出現一些莫明奇妙的錯誤 所以就用Visual C++試 你少了一個 #include<stdlib.h> 加上去應該就沒問題了 我跑是沒出現問題 至於輸出結果正不正確我就不知道了 這是學校的作業嗎? 還是.....? |
| 回覆 |
| 會員 ![]() | 還有檔案結束可以用feof判斷 不用弄個什麼東西在檔尾 |
| 回覆 |
| 會員 ![]() | #include<stdio.h> #include<stdlib.h> void main(void){ FILE *fp1; FILE *fp2; fp1=fopen("hw1.txt","r"); fp2=fopen("ans1.txt","w"); char ch2[100]; double ch1; double sum=0; int num=0; do{ fscanf(fp1,"%s\n",ch2); ch1=atof(ch2); if(ch1>=0){ sum=sum+ch1; }else{ ch1=0; } num=num+1; }while(!feof(fp1)); fprintf(fp2,"%f\n",sum); fprintf(fp2,"%d\n",num); fclose(fp1); fclose(fp2); } 我幫你改了一下 那個E可以砍掉了 它會自動判斷是否到檔尾了 |
| 回覆 |
| 會員 ![]() | 謝了 |
| 回覆 |
| |
類似的主題 | ||||
| 主題 | 主題作者 | 討論版 | 回覆 | 最後發表 |
| 【求助 ADSL可以這樣接嗎? | linahon | ---- ADSL 軟 硬 體 技 術 | 3 | 2004-03-20 12:49 AM |
| 【求助..請問一下有人知道有關排程的問題 | FoxMulder520 | -- Windows 討 論 版 | 5 | 2003-09-14 11:49 AM |
| 【求助]****.dll無法開啟 | jackjuh | -- Windows 討 論 版 | 3 | 2003-05-26 06:02 PM |
| 【求助) 主機組裝規格? | naily | -- 電 腦 硬 體 討 論 版 | 8 | 2003-05-15 10:34 PM |
| 【求助 請教一個英文問題? | ljy126 | -- 閒 話 家 常 灌 水 版 | 1 | 2003-04-10 12:26 AM |
| XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。