1
以只讀方式打開第一個文件
2
以寫方式打開第二個文件
3
循環讀取字元,並寫入第二個文件。直到遇到eof結束。
4
關閉文件。
代碼:
#include
int main()
{
file *f1, *f2;
int c;
f1 = fopen("in.txt", "rb");
f2 = fopen("out.txt", "wb");//將in.txt復制為out.txt;
while((c = fgetc(f1)) != eof)
fputc(c,f2);
fcloseall();
return 0;
}
Ⅱ 如何用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語言如何讀取文件並輸出
//每個單詞之間必須用換行符隔開
#include
<stdio.h>
#include
<malloc.h>
#include
<string.h>
#define
BUF_MAX
1024
int
main()
{
char
findStr[100];
char
*pStr=(char*)malloc(BUF_MAX);
FILE*pFile;
if((pFile=fopen("C:\\Users\\hp\\Desktop\\words.txt","rt"))==NULL)
{
fprintf(stderr,"打開文件錯誤");
return
1;
}
puts("請輸入你要查找的單詞:");
scanf("%s",findStr);
bool
bFind=false;
while(fgets(pStr,BUF_MAX-1,pFile)!=NULL)
{
if(strstr(pStr,findStr)!=NULL)
{
bFind=true;
printf("%s",pStr);
}
}
if(!bFind)
puts("沒有找到");
fclose(pFile);
return
0;
}
Ⅳ C語言讀取文件數據
先用getline或fgets讀取數據到一個字元串中,這個串定義的長一點,保證夠用就行。
舉例:
char str[1024]。
fgets( str , sizeof(str), fp ),//fp打開的文件指針。
然後調用for循環去讀取串的的數據,假設你的分隔符是空格,遍歷str,遇到空格就得到一個數據,然後繼續遍歷,直到str尾。
再去fgets數據,再遍歷,即可得到所有的數據。
拓展資料:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。
C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
Ⅳ C語言如何實現對txt文件的讀取和寫入
1、使用VS新建空工程,直接點擊確定,如下所示。
Ⅵ C語言如何讀取文件
C語言讀取文件的具體步驟如下:
我們需要准備的材料分別是:電腦、C語言。
1、首先我們打開需要讀取的文件,點擊打開左上角文件中的「另存為」。
Ⅶ 怎麼用C語言讀取文件
#include "stdio.h"int main()
{
FILE *pf=NULL; //文件指針 int filelen=0;
int i=0;
char *buf;
pf=fopen("D:\\test.txt","r"); //以只讀方式打開文件
if(pf==NULL)
{
return 0;
}
else
{
//獲得文件長度 fseek(pf,0,SEEK_END); //文件指針移到末尾
filelen=ftell(pf); //獲得文件當前指針位置,即為文件長度
rewind(pf); //將文件指針移到開頭,准備讀取 buf=malloc(filelen+1); //新建緩沖區,存儲獨處的數據
//將緩沖區的數據設置為0
for(i=0;i<filelen+1;i++)
buf[i]=0; //讀取文件
fread(buf,filelen,1,pf);
//關閉文件
fclose(pf);
//buf中即為要讀出的數據 printf("%s\n",buf); //輸出一下數據,你可以隨便怎麼用
free(buf); //最後記得要釋放
}
return 1;
}
Ⅷ c語言中如何讀文件名字
好像有函數,但是忘了,
實在不行,你在C語言里調用DOS的dir命令寫到一個文件里,然後再讀那個文件。
調用DOS為:
system("dir /ad /b >fold.txt"); /*這個是文件夾列表*/
system("dir /a-d /b >file.txt"); /*這個是文件列表*/
你再讀一下那兩件文件。
辦法是有點笨。
你自己再打開那兩個文本文件看一下,裡面的內容吧。
Ⅸ 在C語言中,舉例說明如何打開一個文本文件,並讀入文件中的數據
1.首先,使用VS構建一個新的空項目,然後直接單擊ok。