首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > C语言 > 复习资料 > 正文

2011等考C语言:输入输出函数及控制流程语句

来源:考试吧Exam8.com) 2010-11-10 16:19:07 考试吧:中国教育培训第一门户 模拟考场
考试吧整理了2011计算机等级考试二级C语言基础教程,帮助考生备考。

  例10:

  #iclude

  main()

  {

  FILE *fp; /*定义一个文件指针*/

  int i;

  fp=fopen("CLIB", "rb"); /*打开当前目录名为CLIB的文件只读*/

  if(fp==NULL) /*判断文件是否打开成功*/

  puts("File open error");/*提示打开不成功*/

  i=fclose(fp); /*关闭打开的文件*/

  if(i==0) /*判断文件是否关闭成功*/

  printf("O,K"); /*提示关闭成功*/

  else

  puts("File close error");/*提示关闭不成功*/

  }

  二、有关文件操作的函数

  本节所讲的文件读写函数均是指顺序读写, 即读写了一条信息后, 指针自动加1。下面分别介绍写操作函数和读操作函数。

  1. 文件的顺序写函数

  fprintf()、fputs()和fputc()函数

  函数fprintf()、fputs()和fputc()均为文件的顺序写操作函数, 其调用格式如下:

  int fprintf(FILE *stream, char *format, );

  int fputs(char *string, FILE *steam);

  int fputc(int ch, FILE *steam);

  上述三个函数的返回值均为整型量。fprintf() 函数的返回值为实际写入文件中的字罕个数(字节数)。如果写错误, 则返回一个负数, fputs()函数返回0时表明将string指针所指的字符串写入文件中的操作成功, 返回非0时, 表明写操作失败。fputc()函数返回一个向文件所写字符的值, 此时写操作成功, 否则返回EOF(文件结束结束其值为-1, 在stdio.h中定义)表示写操作错误。

  fprintf( ) 函数中格式化的规定与printf( ) 函数相同, 所不同的只是fprintf()函数是向文件中写入。而printf()是向屏幕输出。

  下面介绍一个例子, 运行后产后一个test.dat的文件。

  例11:

  #include

  main()

  {

  char *s="That’s good news"); /*定义字符串指针并初始化*/

  int i=617; /*定义整型变量并初始化*/

  FILE *fp; /*定义文件指针*/

  fp=fopne("test.dat", "w"); /*建立一个文字文件只写*/

  fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/

  fputc(’:’, fp); /*向所建文件写冒号:*/

  fprintf(fp, "%d\n", i); /*向所建文件写一整型数*/

  fprintf(fp, "%s", s); /*向所建文件写一字符串*/

  fclose(fp); /*关闭文件*/

  }

  用DOS的TYPE命令显示TEST.DAT的内容如下所示:

  屏幕显示

  Your score of TOEFL is: 617

  That’s good news

  2. 文件的顺序读操作函数

  fscanf()、fgets()和fgetc()函数

  函数fscanf()、fgets()和fgetc()均为文件的顺序读操作函数, 其调用格式如下:

  int fscanf(FILE *stream, char *format, );

  char fgets(char *string, int n, FILE *steam);

  int fgetc(FILE *steam);

  fscanf()函数的用法与scanf()函数相似, 只是它是从文件中读到信息。 fscanf()函数的返回值为EOF(即-1), 表明读错误, 否则读数据成功。fgets()函数从文件中读取至多n-1个字符(n用来指定字符数), 并把它们放入string指向的字符串中, 在读入之后自动向字符串未尾加一个空字符, 读成功返回string指针, 失败返回一个空指针。fgetc()函数返回文件当前位置的一个字符, 读错误时返回EOF。

  下面程序读取例11产生的test.dat文件, 并将读出的结果显示在屏幕上。

  例12

  #include

  main()

  {

  char *s, m[20];

  int i;

  FILE *fp;

  fp=fopen("test.dat", "r"); /*打开文字文件只读*/

  fgets(s, 24, fp); /*从文件中读取23个字符*/

  printf("%s", s); /*输出所读的字符串*/

  fscanf(fp, "%d", &i); /*读取整型数*/

  printf("%d", i); /*输出所读整型数*/

  putchar(fgetc(fp)); /*读取一个字符同时输出*/

  fgets(m, 17, fp); /*读取16个字符*/

  puts(m); /*输出所读字符串*/

  fclose(fp); /*关闭文件*/

  getch(); /*等待任一键*/

  }

  运行后屏幕显示:

  Your score of TOEFL is: 617

  That’s good news

  如果将上例中fscanf(fp, "%d", &i)改为fscanf(fp, "%s", m), 再将其后的输出语句改为printf("%s", m), 则可得出同样的结果。由此可见Turbo C2. 0 中只要是读文字文件, 则不论是字符还是数字都将按其ASCII值处理。 另外还要说明的一点就是fscanf()函数读到空白符时, 便自动结束, 在使用时要特别注意。

  3. 文件的随机读写

  有时用户想直接读取文件中间某处的信息, 若用文件的顺序读写必须从文件头开始直到要求的文件位置再读, 这显然不方便。Turbo C2.0提供了一组文件的随机读写函数, 即可以将文件位置指针定位在所要求读写的地方直接读写。

  文件的随机读写函数如下:

  int fseek (FILE *stream, long offset, int fromwhere);

  int fread(void *buf, int size, int count, FILE *stream);

  int fwrite(void *buf, int size, int count, FILE *stream);

  long ftell(FILE *stream);

  fseek()函数的作用是将文件的位置指针设置到从fromwhere开始的第offset 字节的位置上, 其中fromwhere是下列几个宏定义之一:

  文件位置指针起始计算位置fromwhere

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

  符号常数 数值 含义

  ───────────────────────────

  SEEK_SET 0 从文件开头

  SEEK_CUR 1 从文件指针的现行位置

  SEEK_END 2 从文件末尾

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

  offset是指文件位置指针从指定开始位置(fromwhere指出的位置)跳过的字节数。它是一个长整型量, 以支持大于64K字节的文件。fseek()函数一般用于对二进制文件进行操作。

  当fseek()函数返回0时表明操作成功, 返回非0表示失败。

上一页  1 2 3 4 5 6 7 8 9 下一页
  相关推荐:计算机等考二级C语言备考:C语言/C++编译过程

       2010年计算机等级考试二级公共基础知识教程

       考试吧:2010年计算机等考二级C预测题汇总

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。