【問題】請教一下 猜數字&檔案輸出


Recommended Posts

我要寫一個程式

就是那種幾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;

}

鏈接文章
分享到其他網站

小問題: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);
}

鏈接文章
分享到其他網站
  • 1 month later...
  • 4 months later...
  • 2 weeks later...
  • 3 weeks later...
訪客
這個主題現在已關閉,不能再回覆。