找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3921|回复: 0
打印 上一主题 下一主题
收起左侧

文件操作之fputc(char,FILE *)--将内存数据写入硬盘-C语言教程

[复制链接]
跳转到指定楼层
楼主
ID:99624 发表于 2015-12-20 03:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/////------本例程是将键盘键入数据写到硬盘中,以‘\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-------
*/




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表