當前位置:首頁 » 編程語言 » c語言文件讀寫方式有幾種
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言文件讀寫方式有幾種

發布時間: 2022-08-10 23:36:13

㈠ 請問c語言打開文件時,r+ a+ w+幾種讀寫的方式有什麼不一樣(尤其問下寫

r+ 以可讀寫方式打開文件,該文件必須存在。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)

㈡ C語言的文件讀寫

回車和換行符轉換成一個換行符
--
書本用的是老概念。
鍵盤輸入,我們按Enter鍵,C/C++語言收到的就是'\n'
(新行符)。
打字機老概念:回車和換行,回車就是回到本行開始位置,換行就是到下一行。回車符
'\r'
,換行符'\n'
,
老碼
CRLF。
「從鍵盤輸入4個學生的數據是ASCII碼,也就是文本文件」,把「也就是文本文件」刪去。鍵盤輸入是輸入流,不叫文件。
「r」方式讀入
--
fopen(文件名,"r")
--

"r"
方式
打開,是作為
文本文件打開,用於讀。而不是用
二進制方式。
文件

wb
方式
打開和寫成的,
必須用
rb
方式
打開和
讀入.

b
用於
二進制文件。不

b
用於
文本文件(ASCII文件)
.

㈢ 如何用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

㈣ c語言寫入文件方法

要寫入文件,可以按照以下步驟進行操作:
1 在代碼中引用stdio.h,即
#include <stdio.h>
C語言的所有文件操作介面,均聲明在這個頭文件中。
2 定義FILE *類型的變數。
3 打開文件,使用函數為fopen。格式為:
FILE *fopen(char *filename, char *mode);
參數filename為要寫入的文件名,mode為打開的方式,如果僅需寫入文件,可以使用"w"或
"wb"。
返回值為文件指針類型,賦值給之前定義的變數。如果返回值為NULL,代表打開失敗,無法寫入。
4 對文件進行寫操作。C語言中有很多寫文件的介面,包括fprintf, fwrite, fputs, fputc等等。
寫操作可以執行多次。
5 在全部寫操作完成後,執行fclose函數關閉文件指針。這樣就實現了C語言寫入文件。

㈤ c寫文件的幾種模式

文件
文件的分類:
按照用戶角度分:
①設備文件:如顯示器(printf)標准輸出文件;鍵盤(scanf)標准輸入文件
②普通文件:存放在磁等介質上的文件
按照文件的邏輯結構上分:
①記錄文件(有定長記錄、不定長記錄兩種)
②流式文件(由字元數據順序組成如c語言程序)
按照文件的編碼方式:
①文本文件(又稱ascii文件,每個位元組存放一個ascii碼)(.c、.cpp、.h、.txt、.ini、)(常見的有五種)
②二進制文件(binary file)
文件操作函數:
一、文件的打開:文件指針名=fopen(「path\文件名」,「打開文件方式」)
「文件打開方式」:
rt-只讀打開文本文件
wt-只寫打開文本文件
at-追加打開文本文件,並在末尾寫數據。

rb-只讀打開二進制文件
wb-只寫打開二進制文件
ab-追加打開二進制文件,並在末尾寫數據。

rt+-讀寫打開文本文件,允許讀寫
wt+-讀寫打開或建立一個文本文件,允許讀寫。
at+-讀寫打開一個文本文件,允許讀或在文件末尾追加數據。

rb+-讀寫打開二進制文件,允許讀寫
wb+-讀寫打開或建立一個二進制文件,允許讀寫。
ab+-讀寫打開一個二進制文件,允許讀或在文件末尾追加數據。

r+w:可讀寫文件(具體是二進制文件還是文本文件要看打開文件的擴展名而定)
例如:fp=fopen(「C.dat」,「w+b」)

文件打開模式只有r、w、a、t、b、+、這六個字元拼成。
w:用w打開的文件只能向該文件寫入數據(更准確是建立一個新的文件)(即將 信息從程序寫入磁碟中)
a:用a打開對我文件只能向已存在的文件中追加信息
①對於文本文件應注意:從程序中讀入內存時,要將ASCII碼轉換成二進制碼;而 把文件以文本形式寫入磁碟時,要將二進制碼轉換為ASCII碼。
②fopen函數將返回一個文本文件結構的指針(該文件不存在時,返回NULL)
文件的關閉:fclose(fp);(作用強制性將存放在緩中的未滿的數據寫入到磁碟中, 然後釋放文件指針,使其真正寫入磁碟中)
fclose(fp);關閉成功時返回0,失敗時返回EOR
文件的讀寫:
讀字元函數— fgetc()
調用格式:字元變數=fgetc(文件指針(fp));
函數說明:
讀字元時,文件必須以「讀」或者「讀寫」的方式打開
讀取的結果也可以不向字元變數賦值。例如fgetc(fp)
每讀一個字元文件內部指針向前移動一個字元(文件內部指針不是文件指針,文件內部直鎮不需要程序中定義說明由系統自動設置)
返回值:fgetc(fp):成功時函數返回讀入的一個字元,若讀到文件尾時或者出錯時,返回值為「EOF」。
寫字元函數—fputc()
調用格式:fputc(字元量(常量或者變數),文件指針(fp))
函數說明:
寫字元時,文件可以用「寫」「讀寫」「追加」的方式打開文件
寫或者是讀寫的方式打開文件時,原有的內容將會被清除,從文件首部開始寫入字元;若以追加的方式打開文件時,將在文件末尾開始寫入字元。
函數的返回值:寫入成功時,返回寫入的字元;失敗時,則會
返回「EOF」
每寫入一個字元,「文件內部位置指針」向後移動一個字元
讀字元串函數—fgets()
調用格式:fgets(字元數組名,n,文件指針(fp))
函數說明:
N是一個正整數,表示從文件中讀取的字元串不超過N-1個字元。
讀入最後一個字元後加上字元串結束標志'\0'.
讀取過程中,遇到換行或者文件結束標志「EOF」(end of file)時,讀取字元串結束。
寫字元串函數—fputs()
調用格式:fputs(字元串量,文件指針)(字元串量,即可是字元串變數(c中為字元數組),由可是字元串常量)
函數說明:無
///////////////////////////////////////////////////////////////--這部分有點小問題(程序運行不了)
讀數據塊函數—fread()
調用格式:fread(p,size,n,fp)
函數說明:
P:指向輸入/輸出數據塊的首地址的指針
Size:某類型數據存儲空間的位元組數(數據項大小)
N:此次從文件中讀取的數據項數
Fp:文件指針變數
寫數據塊函數—frite()
調用格式:fread (p,size,n,fp)
函數說明:
P:指向輸入/輸出數據塊的首地址的指針
Size:某類型數據存儲空間的位元組數(數據項大小)
N:此次從文件中讀取的數據項數
Fp:文件指針變數
注意:fread、fwite函數在調用成功時,函數返回值為n的值,即輸出的項數;如果失敗,則返回(0)。

㈥ 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語言中文件有幾種操作類型

主要是兩種文件類型:1)文本文件,2)
二進制文件

一般來說,人類可讀的文件都作為文本文件,例如一片文章。其餘都作為二進制文件,例如一個程序。
在C語言中,文件的操作是通過FILE
結構體
進行了,利用fopen返回一個指向FILE結構體的指針,在使用
fopen函數
過程中,使用mode控制符對是否打開哪類文件進行控制:
FILE
*fopen(
const
char
*filename,
const
char
*mode
);
filename:文件名,mode:打開的模式,規定了是可讀、可寫、追加之類的屬性。
r
以只讀方式打開
文件,該文件必須存在。
r+
以可讀寫方式打開文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。
(原來的EOF符不保留)
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
如果調用失敗,返回一個空指針。