标题: 文件操作之fputc(char,FILE *)--将内存数据写入硬盘-C语言教程 [打印本页]

作者: 51黑ren    时间: 2015-12-20 03:00
标题: 文件操作之fputc(char,FILE *)--将内存数据写入硬盘-C语言教程
/////------本例程是将键盘键入数据写到硬盘中,以‘\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-------
*/









欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1