標(biāo)題: 文件操作之fputc(char,FILE *)--將內(nèi)存數(shù)據(jù)寫入硬盤-C語言教程 [打印本頁]

作者: 51黑ren    時間: 2015-12-20 03:00
標(biāo)題: 文件操作之fputc(char,FILE *)--將內(nèi)存數(shù)據(jù)寫入硬盤-C語言教程
/////------本例程是將鍵盤鍵入數(shù)據(jù)寫到硬盤中,以‘\n’回車鍵結(jié)束-----//////////
#include"stdio.h"
#include"stdlib.h"

void main()
{
   char ch;
   FILE *fp;
   fp=fopen("test.txt","wt+");
   if(fp==NULL)
   {
     printf("文件打開失敗!");
getchar();//從鍵盤讀取字符一次一個,或者錄入鍵盤輸入的字符。鍵盤鍵入任意字符則退出程序,否則程序停留在此處
exit(1);
   
   }
   else
   {
     printf("文件打開成功!\n");
     printf("請向硬盤輸入字符:\n");
     ch=getchar();
    while(ch!='\n')//以鍵盤輸入的'\n'(回車鍵)字符作為鍵盤輸入結(jié)束命令
    {
    fputc(ch,fp);//注意該函數(shù)有兩個形參!將鍵盤輸入的字符寫入硬盤fp文件,以文本文件方式;直到'\n'字符為止
           ch=getchar();
   }
   
    rewind(fp);//由于上面對文件的寫入操作,文件內(nèi)部指針已經(jīng)位移到當(dāng)前讀寫位置,
//為了從頭讀出文件,通過rewind(fp)函數(shù)將文件內(nèi)部指針位移到文件起始處
printf("從硬盤讀出文本文件:\n");
ch=fgetc(fp);//該句不能忽略,否則程序直接進(jìn)入循環(huán)
   
while(ch!=EOF)//“EOF”是文件結(jié)束標(biāo)志,是系統(tǒng)宏定義“#define EOF (-1)”屬于int類型;注意:無需加入單引號或雙引號。此處也可以while((int)ch!=EOF)
{
  //printf("從硬盤讀出文本文件字符:%c",ch);
          putchar(ch);//將讀取的字符顯示在屏幕
  ch=fgetc(fp);
}

    printf("\n");//以回車鍵換行
   
   }
   if(NULL==fclose(fp))
   {
   
    printf("文件成功關(guān)閉!\n");
   }

}

/*      
1,EOF問題:
a,
“EOF”是文件結(jié)束標(biāo)志,是系統(tǒng)宏定義“#define EOF (-1)”屬于int類型;注意:無需加入單引號或雙引號。注意,這種以EOF作為結(jié)束標(biāo)志的文件必須是文本文件。在文本文件中數(shù)據(jù)都是以字符的ASCII碼代碼值存放,ASCII碼值范圍是0-255,不可能出現(xiàn)“-1”。
b,當(dāng)fputc()寫入字符出錯時,該函數(shù)返回EOF



---------------GKXW-----2015年11月20日16:31:31-------
*/









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1