幻境 10 發表於 March 26, 2010 檢舉 Share 發表於 March 26, 2010 我要寫一個程式就是那種幾A幾B的猜數字老師會提供一個TXT檔然後以裡面第一行數字為答案(ex.1237)接下來的一堆數字 為用來猜的例如 第二行為1234 就顯示3A3B然後 要把幾A幾B的結果全部輸出到另一個TXT檔 (自己產生)以下是我寫的程式已經可以順利產生另一個TXT檔可是打開裡面是空白的= =想請問一下 我寫的哪裡出了問題呢?#include <stdio.h>#include <stdlib.h>int main(void){ FILE *input,*output;int q1,q2,q3,q4; //這是答案 int a1,a2,a3,a4; //這是回答 int num1,num2,; //幾A幾B int que,ans; char infile[1000],outfile[1000];char c; printf("輸入檔名:");scanf("%s",&infile); input=fopen(infile,"r"); //r--開啟一個檔案 只能讀取 fscanf(input,"%s",que); output=fopen("outfile.txt","w"); //w--開啟一個檔案 只能寫入 q1=que/1000; //千位數 q2=(que/100)%10 ; //百位數 q3=(que/10)%10 ; //十位數 q4=que%10 ; //個位數 do { num1=0;num2=0;fscanf(input,"%s",ans);a1 = ans/1000; a2 = (ans/100)%10; a3 = (ans/10)%10; a4 = ans%10; //這是A if(q1==a1)num1=num1+1;if(q2==a2)num1=num1+1; if(q3==a3)num1=num1+1; if(q4==a4)num1=num1+1; /*這是B*/ if(q1==a1)num2=num2+1;if (q1==a2)num2=num2+1;if (q1==a3)num2=num2+1;if (q1==a4)num2=num2+1;if(q2==a1)num2=num2+1;if (q2==a2)num2=num2+1;if (q2==a3)num2=num2+1;if (q2==a4)num2=num2+1; if(q3==a1)num2=num2+1;if (q3==a2)num2=num2+1;if (q3==a3)num2=num2+1;if (q3==a4)num2=num2+1;if(q4==a1)num2=num2+1;if (q4==a2)num2=num2+1;if (q4==a3)num2=num2+1;if (q4==a4)num2=num2+1;fprintf(output,"%dA%dB\n",num1,num2);c=fgetc(input);if(feof(input))break;}while(1) ; return 0; } 鏈接文章 分享到其他網站
j100002ben 10 發表於 March 26, 2010 檢舉 Share 發表於 March 26, 2010 小問題:c=fgetc(input);,這行是不需要的唷,fscanf會自動掠過空白和換行...再來就是output=fopen("outfile.txt","w"); ,你確定他有開成功嘛??要不要試試FILE *fo;fo = fopen("outfile.txt","w");if(fo == NULL){ printf("Open Output File Error.\n"); exit(1);} 鏈接文章 分享到其他網站
star810589 11 發表於 September 30, 2010 檢舉 Share 發表於 September 30, 2010 fscanf(input,"%s",que); 要讀取的是數字 不是字串 鏈接文章 分享到其他網站
Recommended Posts