撰寫程式,從鍵盤依次輸入一個整數1234,一個字符a,一個實數5.6,用fprintf函式寫入int.txt檔案中
我同學寫的代碼:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
char b;
float c;
FILE*fp;
scanf("%d,%c,%f",&a,&b,&c);
if((fopen("int.txt","w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
fprintf(fp,"%d,%s,%f",a,b,c);
fclose(fp);
return 0;
}
最后執行的時候只能創建檔案,但檔案內空白。
我按照網課寫的:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
char str[20],s[20];
float x,y;
FILE *fp;
scanf("%d %s %f",&a,str,&x);
if((fp=fopen("int.txt","w"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
fprintf(fp,"%d %s %.1f",a,str,x);
fclose(fp);
return 0;
}
最后執行成功
求助:
這兩個代碼,區別在哪?
為什么第一個沒法執行成功?
真的不明白,求大佬幫助


uj5u.com熱心網友回復:
第一個的fp好像沒指向uj5u.com熱心網友回復:
fprintf(fp,"%d,%s,%f",a,b,c);
改成:
fprintf(fp,"%d,%c,%f",a,b,c);
你沒發現第一個程式,沒有吧fopen的回傳值賦值給fp嗎?
uj5u.com熱心網友回復:
你第一個代碼scanf("%d,%c,%f",&a,&b,&c);
這一句,scanf函式中用逗號分隔了,輸入的時候也要輸入逗號
uj5u.com熱心網友回復:
他給我發的是他改之前的代碼,我暈
uj5u.com熱心網友回復:
我同學給我發的是他修改之前的代碼。。。我改了,但還是空白
uj5u.com熱心網友回復:
scanf("%d,%c,%f",&a,&b,&c);if((fp=fopen("int.txt","w"))==NULL)
前面人說的是少了,那個fp=, 沒有把fp賦值,后面的fprintf(fp,。。。)的時候,fp是個什么鬼是未知的,所以寫不成功
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110121.html
標籤:C語言
上一篇:c語言中將三個排好序的陣列按順序放入佇列中,求大神指導
下一篇:計算機科學概論
