Ⅰ c語言怎麼對程序內存進行讀寫
使用fopen的r方式可以實現讀取,用w+方式可以實現寫入。
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中。
Ⅱ C語言對文件的數據寫入的方法
if((fp=fopen("e:\\文件讀寫.txt","r"))==NULL)//注意不要將==寫成=號,文件的路徑是「磁碟:\\文件夾\\文件名.格式」
{
printf("無法打開「文件讀寫.txt」\n");
exit(1);
}
else
printf("文件已成功打開,可以寫入數據了。\n");
刪掉
Ⅲ C語言讀取文件數據
先用getline或fgets讀取數據到一個字元串中,這個串定義的長一點,保證夠用就行。
舉例:
char str[1024]。
fgets( str , sizeof(str), fp ),//fp打開的文件指針。
然後調用for循環去讀取串的的數據,假設你的分隔符是空格,遍歷str,遇到空格就得到一個數據,然後繼續遍歷,直到str尾。
再去fgets數據,再遍歷,即可得到所有的數據。
拓展資料:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。
C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
Ⅳ c語言內存讀寫問題,求大神幫忙,謝謝!
你好,代碼如下:
char *readfile(char *path)
{
FILE *fp;
int length;
char *ch;
if((fp=fopen(path,"r"))==NULL)
{
printf("open file %s error.\n",path);
exit(0);
}
length=filelength(fp);
ch=(char *)malloc(length);
fread(ch,length,1,fp);
*(ch+length-1)='\0';
return ch;
}
int filelength(FILE *fp)
{
int num;
fseek(fp,0,SEEK_END);
num=ftell(fp);
fseek(fp,0,SEEK_SET);
return num;
}
希望可以幫到你。
Ⅳ 關於C語言的讀寫
r的意思是以只讀方式打開文件,表示程序只能讀取文件中的內容,不可以把其他數據寫入文件,書本上說只讀的意思是只能輸入不可以輸出那是對程序而言的吧,只能從只讀文件中讀取內容輸入到程序,不能將程序結果輸出到只讀文件。
w意思是用「w」打開的文件只能向該文件寫入,書上說是「只能寫入而不能輸入」意思是: 只能由程序向該文件中寫入內容,不能將文件內容輸入到程序。
你沒有弄清說話的對象,還有樓主看的什麼書啊?找一本表述清楚的書啊~~C語言建議看C Primer Plus,C++建議看C++ Primer Plus,都是入門必看經典來著。
Ⅵ C語言如何實現文件的快速讀寫呢
flush(fp); 強制緩存寫入文件 看行不行 , 在每次write之後
Ⅶ 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語言 INI文件內數據讀取方法
ini文件和普通txt文件相同,都是文本格式,使用普通文本操作函數讀取即可。
1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。一般的C語言教程都有文件操作一章,可以找本教材進一步學習。
2、常式:
#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.ini","r");//打開輸入文件input.ini
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
rturn0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return0;
}
Ⅸ c語言文件讀寫方式:兩種讀寫方式r和r+到底有什麼區別啊
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fd;
char buf[1024];
char e[10];
int i,j=3;
if ((fd = fopen("file1.dat","ab+")) == NULL) //r是打開一個用於讀取的文本文件.rb+是打開一個文件,並在末尾追加數據
{
printf("ERROR\n");
return 0;
}
else
{
fread(buf,1024,1,fd); //讀取源文件的內容,我寫的file1.dat的文件內容為三個字元
buf[j] = '\0';
printf("原文件內容為%s\n",buf);
printf("請輸入你要添加的數據\n");
gets(e); //你要加在源文件後面的內容,鍵盤輸入
fwrite(e,strlen(e),1,fd); //把你輸入的字元串加在文件後面
j+=strlen(e); //文件內容增加
fseek(fd,0,0); //把文件的標號偏移到開頭
fread(buf,1024,1,fd); //讀取寫入後的文件內容
buf[j] = '\0';
printf("寫入後的文件為%s\n",buf);
}
}
r是打開只讀文件.
這是我改的,可以讀寫