不是這個:
char fname[256];
printf("Enter file name\n");
scanf("%123s",fname);
strcat(fname,".txt"); F
FILE *inputf; inputf=fopen(fname,"w"); // <--!!!
if (inputf!=NULL) printf("found");
else printf("not found");
but this instead:
char fname[256]; FILE *inputf;
inputf=fopen(fname,"w");
printf("Enter file name\n");
// you know that you can't ever, EVER use scanf() so // remove this time bomb and use something else scanf("%123s",fname);
strcat(fname,".txt"); inputf=fopen(fname,"w"); if (inputf!=NULL) { printf("found"); } else { printf("not found"); }
現在,什麼指針不是NULL?你不能像編譯代碼那樣編譯代碼,那麼你怎麼知道什麼是或不是NULL?
--pete
什麼問題? – Gorgen 2011-03-01 06:18:17
你在什麼環境下運行這段代碼?你自己的電腦?共享終端,可能是學校電腦? Ssh訪問別的地方?如果你正在運行linux,「ls -l」的輸出是什麼?因爲它似乎缺少寫入文件系統的權限。 – 2011-03-01 06:42:11
你的代碼在我的系統上編譯得很好。如果不以「w」參數退出,它會創建文件。你必須檢查@junjanes建議的內容。 – Mahesh 2011-03-01 06:43:51