|
/////------本例程是將鍵盤鍵入數(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();//從鍵盤讀取字符一次一個(gè),或者錄入鍵盤輸入的字符。鍵盤鍵入任意字符則退出程序,否則程序停留在此處
exit(1);
}
else
{
printf("文件打開成功!\n");
printf("請(qǐng)向硬盤輸入字符:\n");
ch=getchar();
while(ch!='\n')//以鍵盤輸入的'\n'(回車鍵)字符作為鍵盤輸入結(jié)束命令
{
fputc(ch,fp);//注意該函數(shù)有兩個(gè)形參!將鍵盤輸入的字符寫入硬盤fp文件,以文本文件方式;直到'\n'字符為止
ch=getchar();
}
rewind(fp);//由于上面對(duì)文件的寫入操作,文件內(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類型;注意:無需加入單引號(hào)或雙引號(hào)。此處也可以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類型;注意:無需加入單引號(hào)或雙引號(hào)。注意,這種以EOF作為結(jié)束標(biāo)志的文件必須是文本文件。在文本文件中數(shù)據(jù)都是以字符的ASCII碼代碼值存放,ASCII碼值范圍是0-255,不可能出現(xiàn)“-1”。
b,當(dāng)fputc()寫入字符出錯(cuò)時(shí),該函數(shù)返回EOF

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