1. C語言用二進制流存文件儲線性表結構數據怎麼存不進去
linklist
*header
=
&l;
while(header)
{
fwrite(header,
sizeof(linklist),
1,
fp);
header
=
header
->next;
}
雖然是這樣寫,但是保存進去的next指針是無效的。讀的時候必須重新建立鏈表。
2. C語言怎麼保存到磁碟,為什麼我這個總顯示can not open file
if((fp=fopen("f:\\adresslist","wb"))==NULL){};
如果文件打開失敗,你的程序要求 顯示can not open file。例如,F盤不存在,防寫,沒有許可權。
if((fp=fopen("f:\\adresslist","rb"))==NULL){}
如果文件不存在,或沒有關閉,仍在別的程序使用中,也會打開失敗。
另外,非 unix 系統,文件名最好帶擴展名,例如 adresslist.txt
3. C語言,為什麼我無法將數據寫入文件
它可能是因為,沒有這個文件的寫入操作許可權,或者文件已被損壞等等原因。
4. C語言,為什麼數據沒有保存到文件裡面
fp=fopen("demo.txt","rb");
文件是以只讀形式("rb")打開的,怎麼能寫呢
fp=fopen("demo.txt","ab"); //以追加方式打開文件即可
5. 關於C語言中文件保存保存不了
if((fp=fopen("成績管理.txt","wb"))==NULL)
{
printf("無法打開此文件 ");
return;
}
6. C語言文件保存不了,if語句完全起不到作用,求解
scanf("%c",&k);中的"%c"中%前加一個空格,變成 scanf(" %c",&k);,或在scanf("%c",&k);後加一句getchar();,你的問題就迎刃而解了。因為scanf("%c",&k);接收了你輸入最後一個學生的最後一門成績後的回車符'\n',使K='\n'了。而你接著輸入的y被getchar接收了,可是它沒有賦給k,後面的if判斷就出錯了……
7. C語言程序文件保存問題
你是以記事本保存的,而保存的數據裡面有整數,整數不是字元,記事本顯示的是亂碼,如果想保存整數類型,需要報整數轉化成字元串,你可以嘗試使用fprintf和fscanf來讀寫文件.以下是例子:
在運用fprintf與fscanf時,在向文件輸出數據及從文件讀取數據時,分隔符應該相一致。如下程序所示,該程序的功能是:用戶輸入8個整型數據,程序回顯並把數據寫到int.txt文件中,然後程序再從int.txt文件中讀取數據,並顯示出來。
#include <stdio.h>
main()
{
FILE *fp;
int i,ss[8],new[8];
for(i=0;i<8;i++){
scanf("%d",&ss[i]);
}
fp=fopen("int.txt","w");
printf("start diesplay old data!/n");
for(i=0;i<8;i++){
printf("%d:%-10d/n",i+1,ss[i]);
fprintf(fp,"%d,",ss[i]);/*輸出數據時以逗號為數據之間的分隔符*/
}
fclose(fp);
printf("Now diseplay read date!/n");
if((fp=fopen("int.txt","r"))==NULL) return 1;
for(i=0;i<8;i++){
fscanf(fp,"%d,",&new[i]);/*輸入數據時以逗號為數據之間的分隔符,這樣做到前後一致, 讀取數據不會錯*/
printf("%d:%-10d/n",i+1,new[i]);
}
fclose(fp);
}
分隔符也可採用/n,即回車符,那麼程序中二句相應改為:
fprintf(fp,"%d/n",ss[i]);
fscanf(fp,"%d/n",&new[i]);
8. C語言保存txt文件的問題
C語言使用fopen函數打開txt文件,使用fclose函數關閉並保存txt文件。
1.fopen的函數原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:
r
以只讀方式打開文件,該文件必須存在。
r+
以可讀寫方式打開文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,允許讀數據。
rw+
讀寫打開一個文本文件,允許讀和寫。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。
(原來的EOF符不保留)
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
wt+
讀寫打開或著建立一個文本文件;允許讀寫。
at+
讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b
字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。
2.常式:
#include
#define F_PATH "d:\\myfile\\file.txt"
char c;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp) return -1;//要返回錯誤代碼
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //從文本中讀入並在控制台列印出來
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址
return 0;
}
9. 我的C語言程序為什麼不能保存數據,每次退出再進入後就沒有之前存的東西了
你把打開方式改成追加試試、或許是你覆蓋寫入的原因
把文件的打開方式改成追加模式,就是「fopen("work".txt,"ab")」
10. 用C語言怎麼保存文件
你說的是在程序里寫代碼保存文件還是在編譯器中寫完了保存。
文件中保存需要IO流的知識,間的說和上邊說的差不多。
編譯器保存文件時VC6.0中是在第一排文件中有一個保存,點它選保存位置就可以了,或直接CTRL+s也可以,其實也有快捷鍵在第二排第三個就是了。別的編譯器大多都在文件里有保存。
祝你成功。