亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言實現(xiàn)文件讀寫

 更新時間:2020年12月28日 10:24:55   作者:*pan  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)文件讀寫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

關于C語言的文件讀寫,我將介紹下面這幾種方式:

  • 字符的讀寫:使用 fgetc() 函數 和 fputc() 函數;
  • 字符串的讀寫:使用 fgets() 函數和 fputs() 函數;
  • 格式化的讀寫(主要用于文本文件):使用 fscanf() 函數和 fprintf() 函數。

字符讀寫:

1. fputc()函數

fputc(c,fp); //用于將一個字符寫入文件

其中,fp為文件指針變量;c為要寫入的字符,可以是字符常量或字符型變量。函數返回值:如果執(zhí)行成功,返回寫入的字符;否則,返回EOF。

int main()
{
 FILE *fp;  //定義文件指針
 char ch;  //字符指針
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","w"); //打開文件,寫入模式
 if(fp==NULL) //若fopen()函數返回NULL則打開文件失敗
 {
 printf("文件打開失敗\n");
 }
 else
 {
 printf("請輸入內容(以回車結束):\n"); 
 while((ch = getchar()) != '\n') //讀取字符進行寫入,讀取到“\n”結束
 {
 fputc(ch,fp);
 }
 }
 fclose(fp); //關閉文件
 return 0;
}

由于沒有寫循環(huán),目前只能輸入一行文本內容。

2. fgetc()函數

c=fgetc(fp); //用來從指定的文本文件中讀取一個字符。

其中,fp為文件指針,c為要寫入的字符。該函數的功能是從指定的文件中讀取一個字符,并賦值給字符型變量c。

函數返回值:讀取成功,返回讀取字符;讀取錯誤或遇到結束標志EOF,返回EOF。

int main()
{
 FILE *fp;  //定義文件指針
 char ch;  //字符指針
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","r"); //打開文件,只讀模式
 if(fp==NULL) //若fopen()函數返回NULL則打開文件失敗
 {
 printf("文件打開失敗\n");
 }
 else
 {
 while((ch=fgetc(fp))!=EOF) //讀取文件字符,直到返回fgetc()函數返回EOF
 {
 putchar(ch);  //在顯示窗口輸出字符
 }
 putchar('\n');  //輸出回車
 }
 fclose(fp);
 return 0;
}

字符串讀寫:

1. fputs()函數

fputs(s,fp); //用來將一個字符串寫入指定的文本文件。 

其中,fp為文件指針,s可以是字符數組名,字符型指針變量或字符串常量。該函數的功能是將字符串s寫入由fp指向的文件中,字符串末尾的‘\0'字符不允寫入。

函數返回值:執(zhí)行成功,返回所寫的最后一個字符;否則,返回EOF。

int main()
{
 FILE *fp;  //定義文件指針
 char s[][100]={"a 一","b 地","c 現(xiàn)","cd 三","about 關于"};  //將字符串存入數組
 int i;
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","w"); //打開文件,寫入模式
 if(fp==NULL) //若fopen()函數返回NULL則打開文件失敗
 {
 printf("文件打開失敗\n");
 }
 else
 {
 for(i=0;i<5;i++)  //注意數組從0開始
 {
  fputs(s[i],fp); //在文件中寫入數組中的字符串
  fputs("\n",fp); //在文件中寫入回車
 }
 }
 fclose(fp); //關閉文件
 return 0;
}

運行結果:

2. fgets()函數

fgets(s,n,fp); //用于從指定的文件中讀一個字符串到字符數組中。

其中,s可以是字符型數組名或字符串指針;n是指定讀入的字符個數;fp為文件指針。n是一個正整數,表示從文件中最多讀取n-1個字符,并將字符串指針s定位在讀入的字符串首地址。

fgets()函數從文件中讀取字符直到遇到回車符或EOF為止,函數會在最后一個字符后加上字符串結束標志'\0';若有EOF,則不予保留。

函數返回值:該函數如果執(zhí)行成功,返回讀取字符串;如果失敗,則返回空指針NULL,這時,s中的內容不確定。

int main()
{
 FILE *fp;  //定義文件指針
 char s[5][100]; 
 int i;
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","r"); //打開文件,只讀模式
 if(fp==NULL) //若fopen()函數返回NULL則打開文件失敗
 {
 printf("文件打開失敗\n");
 }
 else
 {
 for(i=0;i<5;i++)
 {
 fgets(s[i],100,fp); //讀取字符串存入數組
 printf("%s",s[i]); //輸出字符串
 }
 }
 fclose(fp);
 return 0;
}

運行結果:

格式化讀寫:

1. fprintf()函數

fprintf(fp,format, arg1, arg2,….,argn);

fprintf()用來將輸出項按指定的格式寫入指定的文本文件中,其中格式化規(guī)定與printf()函數功能相似,所不同的只是fprintf()函數是將輸出的內容寫入文件中,而printf()函數則是在屏幕輸出。

其中,fp為文件指針,format為指定的格式控制字符串;arg1~argn為輸出項,可以是字符、 字符串或各種類型的數值。該函數的功能是按格式控制字符串format給定的格式,將輸出項arg1,arg2,……,argn的值寫入fp所指向的文件中。

函數返回值:如果函數執(zhí)行成功,返回實際寫入文件的字符個數;若出現(xiàn)錯誤,返回負數。

具體格式:

fprintf(fp,"%s",s[i]); //在文件中寫入數組中的字符串

2. fscanf()函數

fscanf(fp,format,arg1,arg2,…..,argn);

fscanf()用來按規(guī)定的格式從指定的文本文件中讀取數據。它與scanf()函數的功能相似,都是按規(guī)定的格式讀數據的函數,只是fscanf()函數讀的對象不是鍵盤區(qū),而是文件。

其中,fp為文件指針,format為指定的格式控制字符串;arg1~argn為輸入項的地址。該函數的功能是從文件指針fp所指的文本文件中讀取數據,按格式控制字符串format給定的格式賦予輸入項arg1,arg2,……,argn中。

函數返回值:如果該函數執(zhí)行成功,返回讀取項目個數;如果遇到文件末尾,返回EOF;如果賦值失敗,返回0.

具體格式:

fscanf(fp,"%s",s[i]); //讀取字符串存入數組

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論