/////------本例程是将键盘键入数据写到硬盘中,以‘\n’回车键结束-----//////////
#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'(回车键)字符作为键盘输入结束命令
{
fputc(ch,fp);//注意该函数有两个形参!将键盘输入的字符写入硬盘fp文件,以文本文件方式;直到'\n'字符为止
ch=getchar();
}
rewind(fp);//由于上面对文件的写入操作,文件内部指针已经位移到当前读写位置,
//为了从头读出文件,通过rewind(fp)函数将文件内部指针位移到文件起始处
printf("从硬盘读出文本文件:\n");
ch=fgetc(fp);//该句不能忽略,否则程序直接进入循环
while(ch!=EOF)//“EOF”是文件结束标志,是系统宏定义“#define EOF (-1)”属于int类型;注意:无需加入单引号或双引号。此处也可以while((int)ch!=EOF)
{
//printf("从硬盘读出文本文件字符:%c",ch);
putchar(ch);//将读取的字符显示在屏幕
ch=fgetc(fp);
}
printf("\n");//以回车键换行
}
if(NULL==fclose(fp))
{
printf("文件成功关闭!\n");
}
}
/*
1,EOF问题:
a,
“EOF”是文件结束标志,是系统宏定义“#define EOF (-1)”属于int类型;注意:无需加入单引号或双引号。注意,这种以EOF作为结束标志的文件必须是文本文件。在文本文件中数据都是以字符的ASCII码代码值存放,ASCII码值范围是0-255,不可能出现“-1”。
b,当fputc()写入字符出错时,该函数返回EOF

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