當前位置:首頁 » 編程語言 » c語言讀寫

c語言讀寫

發布時間: 2022-01-12 07:59:53

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

熱點內容
crv哪個配置性價比高2021 發布:2024-09-17 04:07:51 瀏覽:35
wincc圖形編譯在哪裡 發布:2024-09-17 03:58:26 瀏覽:977
androidubuntu 發布:2024-09-17 03:50:27 瀏覽:701
識夢源碼 發布:2024-09-17 03:50:18 瀏覽:26
諾基亞密碼忘了打什麼電話 發布:2024-09-17 03:27:09 瀏覽:555
樹深度優先演算法 發布:2024-09-17 03:26:58 瀏覽:472
跳轉頁源碼 發布:2024-09-17 03:13:05 瀏覽:543
html文件上傳表單 發布:2024-09-17 03:08:02 瀏覽:785
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:726
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688