當前位置:首頁 » 編程語言 » c語言不能讀信息
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言不能讀信息

發布時間: 2022-08-04 06:52:49

c語言 文件的讀寫操作下面這一段程序為什麼無法正常讀取文件中的信息

fprintf(fp,"%d%d%d %s\t%s\t%.2f %s\n",...這個語句設定的格式不好, 數字連在一起無法正確讀取, 需要在添加合適的分隔符.

㈡ c語言學生成績管理系統,為什麼我的數據保存之後不能讀取呢

把你的後兩個函數用我的替換一下:
你讀取不出來的原因,你沒有在保存的文件裡面寫入一共有多少個信息,你在讀取函數那裡的讀取的studentacount的值是0,所以沒有讀。另外,既然你讀取是rb,保存也應該對應的wb啊。
void
StoreFile(struct
STUDENT
wstudent[])
{
FILE
*fp;
fp=fopen("d:\\student.txt","wb");
if(fp
==
NULL)
{
printf("沒有此文件!");
}
fwrite(&studentacount,sizeof(int),1,fp);
fwrite(wstudent,sizeof(struct
STUDENT),studentacount,fp);
fclose(fp);
printf("保存成功!\n");
};
void
OpenFile(struct
STUDENT
wstudent[])
{
FILE
*fp;
fp=fopen("d:\\student.txt","rb");
if(fp
==
NULL)
{
printf("沒有此文件!");
}
fread(&studentacount,sizeof(int),1,fp);
fread(wstudent,sizeof(struct
STUDENT),studentacount,fp);
fclose(fp);
printf("打開成功!\n");
};

㈢ c語言文件問題,為什麼文件的打開方式是w+,讀入函數是fgetc,就讀不到文件內的信息

w+,打開文件可讀寫,文件不存在則創建,文件如果已存在則先被清空。本質是供寫文件使用,順便可以讀
r+不會清空文件

㈣ C語言程序為什麼讀不了文件

看過去好像沒什麼問題啊.
你再看看文件有沒有關掉之類的。

另外你的參數n
好好地跟蹤一下看一下。

你說的那個確實是有點問題.
另外fscanf的返回值是返回輸入多少個參數
如果返回的個數少於你想要讀的個數的話,你那個判斷也是不行的.
最好把數據文件和結構體也整上來看看。

㈤ C語言,不能讀取文件中的內容

你要打開讀的文件必須已存在,已有正確內容, b 是2進制文件噢。
// struct USER {..........} 已定義
void main(){
FILE *fp;
char filename[]="my.dat"; // 如果文件名是my.dat
struct USER user; // 如果已定義結構USER, 這里聲明user
if((fp=fopen(filename,"rb"))==NULL){printf("open %s error\n",filename); exit(0);}
fread(&user,sizeof(user),1,fp);
printf("password=%s",user.password);
....

㈥ C語言 下面那裡錯了 為什麼不能從文件讀信息

沒有看到你寫入文件的信息,你讀取的是二進制的文件,讀寫字元串用這種方式是有很大的缺陷的,會出現亂碼,讀取出來的東西很難調試,我也碰到過很多問題,用sizeof()讀取的那個空間,有些部分就是亂碼,那亂碼部分就是我們沒有寫入的部分卻被讀取出來了。建議你向文件讀寫信息用fprintf和fscanf這兩個函數,他們寫入文件的信息是沒有亂碼的!

㈦ c語言 文件打開後,就只能寫不能讀,為什麼

「rt」 只讀打開一個文本文件,只允許讀數據
「wt」 只寫打開或建立一個文本文件,只允許寫數據 「at」 追加打開一個文本文件,並在文件末尾寫數據 「rb」 只讀打開一個二進制文件,只允許讀數據
「wb」 只寫打開或建立一個二進制文件,只允許寫數據 「ab」 追加打開一個二進制文件,並在文件末尾寫數據 「rt+」 讀寫打開一個文本文件,允許讀和寫
「wt+」 讀寫打開或建立一個文本文件,允許讀寫
「at+」 讀寫打開一個文本文件,允許讀,或在文件末追加數據 「 rb+」 讀寫打開一個二進制文件,允許讀和寫
「wb+」 讀寫打開或建立一個二進制文件,允許讀和寫
「ab+」 讀寫打開一個二進制文件,允許讀,或在文件末追加數據
注意:對於文本文件的操作,我們可以「r」,「w」,「a」,「a+」不需要加字母t也可以的

㈧ C語言編程 可以儲存但是不能讀取

你所寫的函數,存儲文件和讀取文件所需的存儲方式明顯不同,當然不可能進行讀取了
修改過了,你試試
void save(Finace t[],int n)
{
int i;
FILE *fp;
if((fp=fopen("record.txt","wb"))==NULL)
{
printf("can not open file\n");
return;
}
printf("\nSaving file now!\n");
fprintf(fp,"there is %d records!",n);
fprintf(fp,"\r\n");
for(i=0;i<n;i++)
{
fprintf(fp,"%s %s\0-%s\0-%s %s",t[i].name,t[i].year,t[i].month,t[i].day,t[i].amount);
fprintf(fp,"\r\n");
}
fclose(fp);
printf("****save success***\n");
printf("\nPress any key continue...\n");
getch();
}
int load(Finace t[])
{
int i,n;
FILE *fp;
if((fp=fopen("record.txt","rb"))==NULL)
{
printf("can not open file\n");
return 1;
}
fseek(fp,9,0);
fscanf(fp,"%d",&n);
fseek(fp,20,0);
for(i=0;i<n;i++)
fscanf(fp,"%s %s-%s-%s %s",t[i].name,t[i].year,t[i].month,t[i].day,t[i].amount);
fclose(fp);
printf("You have success read data from file!!!\n");
printf("\nPress any key continue...\n");
getch();
return n;
}
哪裡還不行的話就再問我吧,我這里大致測了一下似乎沒問題了