c語言讀寫
Ⅰ c語言中文件的讀寫實際過程
RB和R本質上是二進制數據流,但用於文本的二進制數據的含義是ASCII或其他內部代碼。R/W和Rb/WB之間的一個重要區別是,R/W的文本換行格式在不同的系統上是不同的(DOS/windows下的回車字元Cr('\R')+換行字元LF('\n')、UNIX/Linux下的LF和MAC下的Cr),這導致文件操作的細節不同(例如,通過fput和fprintf處理字元串的結尾)。
具體的讀寫實現由庫函數處理,WB/RB模式一般採用緩沖區讀寫,最終實現對外部內存文件或其他輸入/輸出流的抽象(包括在內存中建立緩沖區)。在此基礎上,w/R模式處理了上述一些差異。通常,緩沖區的操作取決於庫函數的實現。用戶無法看到庫函數,因為它是不必要的(無法保證不同平台的實現是一致的)。
對於標准輸入設備,如鍵盤,它被抽象為標准輸入流stdin。除了抽象過程本身(由底層系統實現)外,實現方法與從外部存儲文件讀取之間沒有本質區別。
Ⅱ C語言文本文件的讀寫
//---------------------------------------------------------------------------
#include <stdio.h>
struct pro
{float msl;
float la,lo;
double refractivity,density,pressure;
float temp;
}atm[200];
int main(void)
{
FILE *fp=fopen("infile.dat","r"),*fp2=NULL;
int i;
if (!fp||(fp2=fopen("out.txt","w"))==NULL) {
fprintf(stderr,"FILE ERROR");
return -1;
}
for (i = 0; i<200; i++) {
/*從infile.dat文件讀取數據*/
fscanf(fp,"%f%f%f%lf%lf%lf%f",&atm[i].msl,&atm[i].la,&atm[i].lo,&atm[i].refractivity,&atm[i].density,&atm[i].pressure,&atm[i].temp);
/*將數據寫到out.txt文件*/
fprintf(fp,"%f\t%f\t%f\t%lf\t%lf\t%lf\t%f\n",atm[i].msl,atm[i].la,atm[i].lo,atm[i].refractivity,atm[i].density,atm[i].pressure,atm[i].temp);
}
fclose(fp);
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------
Ⅲ c語言讀寫文件
c語言字元串中包含路徑:C:\windows\system32
要寫成:"C:\\windows\\system32"
Ⅳ c語言的文件讀寫代碼
fopen打開文件
fread讀文件
fwrite寫文件
fclose關閉文件
幾個函數,按你文件讀寫要求寫一個,不難的
Ⅳ C語言文件的讀寫
一個c語言讀寫文件程序:
#include "stdio.h"
#include <stdlib.h>
main()
{
FILE *fp1;//定義文件流指針,用於打開讀取的文件
FILE *fp2;//定義文件流指針,用於打開寫操作的文件
char text[1024];//定義一個字元串數組,用於存儲讀取的字元
fp1 = fopen("d:\\a.txt","r");//只讀方式打開文件a.txt
fp2 = fopen("d:\\b.txt","w");//寫方式打開文件a.txt
while(fgets(text,1024,fp1)!=NULL)//逐行讀取fp1所指向文件中的內容到text中
{
puts(text);//輸出到屏幕
fputs(text,fp2);//將內容寫到fp2所指向文件中
}
fclose(fp1);//關閉文件a.txt,有打開就要有關閉
fclose(fp2);//關閉文件b.txt
}
Ⅵ C語言如何實現對txt文件的讀取和寫入
1、使用VS新建空工程,直接點擊確定,如下所示。
Ⅶ C語言 文件讀寫
你的是字元寫入的
可以逐行進行操作
你把具體代碼給我 我來改
Ⅷ c語言文件的讀寫
由於你的程序只有一個主函數,看來你還不熟悉函數,那麼我告訴你在你程序的基礎上怎麼修改吧!
一、多定義兩個變數:
1. 先添加頭文件,寫在最前面#include <string.h>
2. 再定義兩個變數
FILE*fp=NULL;
charfilename[100]={0};
二、在寫入文件之前,先打開一個要寫入的文件,若沒有此文件,就新建一個。在想寫入文件的地方:
printf(" ---------下面生成xml文件--------- ");
strcpy(filename,font); //獲得用戶輸入的文件名稱
strcat(filename,".xml"); //添加xml文件後綴
fp=fopen(filename,"wt"); //打開文件
三、在想寫入文件的地方調用 fprintf函數:
fprintf函數使用很簡單:將所有你寫的printf復制一下,然後在前面加上f成為fprintf,然後在添加新的參數fp,如:
原printf為
printf("<?xmlversion='1.0'encoding='UTF-8'standalone='yes'?> ");
改為fprintf
fprintf(fp,"<?xmlversion='1.0'encoding='UTF-8'standalone='yes'?> ");
舉例你的代碼如下修改:
printf("<?xmlversion='1.0'encoding='UTF-8'standalone='yes'?> ");
printf("<stylewidth="%d"height="%d"> ",width,height);
if(fp!=NULL) //若打開文件成功
{
fprintf(fp,"<?xmlversion='1.0'encoding='UTF-8'standalone='yes'?> ",fp);
fprintf(fp,"<stylewidth="%d"height="%d"> ",width,height);
}
其他地方以此類推,檔xml文件寫完時,要關閉該文件:
printf("</style> ");
fprintf(fp,"</style> ");//寫入文件
fclose(fp);//關閉該xml文件
fp=NULL;//將文件指針賦值為NULL
四、寫入til文件和css文件時,操作類似:
printf(" ---------下面生成til文件--------- ");
strcpy(filename,font);
strcat(filename,".til");
fp=fopen(filename,"wt");
printf("[GLOBAL] ");
printf("USE_ALPHA=1 ");
printf("TILE_NUM=%d ",n);
if(fp!=NULL)//若文件打開成功
{
fprintf(fp,"[GLOBAL] ");//寫入文件內哦
fprintf(fp,"USE_ALPHA=1 ");
fprintf(fp,"TILE_NUM=%d ",n);
}
。。。其餘省略
可以追問。
Ⅸ 關於C語言的讀寫
r的意思是以只讀方式打開文件,表示程序只能讀取文件中的內容,不可以把其他數據寫入文件,書本上說只讀的意思是只能輸入不可以輸出那是對程序而言的吧,只能從只讀文件中讀取內容輸入到程序,不能將程序結果輸出到只讀文件。
w意思是用「w」打開的文件只能向該文件寫入,書上說是「只能寫入而不能輸入」意思是: 只能由程序向該文件中寫入內容,不能將文件內容輸入到程序。
你沒有弄清說話的對象,還有樓主看的什麼書啊?找一本表述清楚的書啊~~C語言建議看C Primer Plus,C++建議看C++ Primer Plus,都是入門必看經典來著。
Ⅹ 如何用C語言讀寫文件
fopen
函數功能:打開一個文件
函數原型:FILE * fopen(const char * path,const char * mode);
相關函數:open,fclose,fopen_s,_wfopen
所需庫:<stdio.h>
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno 中。
函數簡介
函數原型:FILE * fopen(const char * path,const char * mode);
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno 中。
一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
參數說明:
參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。
mode有下列幾種形態字元串:
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
rw+ 讀寫打開一個文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。
at+ 打開一個叫string的文件,a表示append,就是說寫入處理的時候是接著原來文件已有內容寫入,不是從頭寫入覆蓋掉,t表示打開文件的類型是文本文件,+號表示對文件既可以讀也可以寫。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函數庫以二進制模式打開文件。如果不加b,表示默認加了t,即rt,wt,其中t表示以文本模式打開文件。由fopen()所建立的新文件會具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)許可權,此文件許可權也會參考umask值。
有些C編譯系統可能不完全提供所有這些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,讀者注意所用系統的規定。
二進制和文本模式的區別
1.在windows系統中,文本模式下,文件以"\r\n"代表換行。若以文本模式打開文件,並用fputs等函數寫入換行符"\n"時,函數會自動在"\n"前面加上"\r"。即實際寫入文件的是"\r\n" 。
2.在類Unix/Linux系統中文本模式下,文件以"\n"代表換行。所以Linux系統中在文本模式和二進制模式下並無區別。
打開方式總結:各種打開方式主要有三個方面的區別:
①打開是否為二進制文件,用「b」標識。
②讀寫的方式,有以下幾種:只讀、只寫、讀寫、追加只寫、追加讀寫這幾種方式。
③對文件是否必須存在、以及存在時是清空還是追加會有不同的響應。具體判斷如下圖。
參考http://ke..com/view/656681.htm?fr=aladdin