Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71357
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-13 23:14
个人简介

万年では長すぎる、ただ一刻を争うのみだ。

文章分类

全部博文(2)

文章存档

2015年(2)

我的朋友
最近访客

分类: C/C++

2015-03-17 14:20:59

轉載請註明出處:http://blog.chinaunix.net/uid-30162545-id-4899272.html
初版:2015-03-17   最終更新:2015-03-17     By CaptainOU


1. 概述

①当程序启动时,下面的文件已经被打开。
  stdin(标准入力)、stdout(标准输出)、stderr(标准错误输出)
printf()函数往stdout里面写入数据。printf("hello world\n");和fprintf(stdout, "hello world\n");是相同的。
scanf( )函数是从stdin中读取数据。



2. 文件操作:






3. 打开文件

C语言中,通过fopen()函数来打开文件时,在内存上就会生成FILE类型的结构体。fopen()函数会返回指向FILE结构体的指针。
※stdio.h头文件中,如果有"#define FOPEN_MAX 15"的描述、那么一次打开文件的最大个数为15。
①FILE结构体简介:

点击(此处)折叠或打开

  1. typedef struct {
  2. /* 打开文件的访问模式(r, w, r/w) */
  3. char mode;
  4. /* 读取写入的位置(从开始位置开始的bit数) */
  5. char *ptr;
  6. /* 从ptr指示的读取写入位置开始到文件末尾的bit数 */
  7. int rcount;
  8. /* 从ptr指示的读取写入位置开始到文件末尾的bit数 */
  9. int wcount;
  10. /* 文件访问用缓存的开始位置 */
  11. char *base;
  12. /* 文件访问用缓存的大小 */
  13. unsigned bufsiz;
  14. /* 文件描述符(标准入力、标准输出、标准错误输出的番号) */
  15. int fd;
  16. char smallbuf[1];
  17. } FILE;
※FILE结构体定义在stdio.h。

例:从文件的开头开始取10个文字,取3次。

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[]) {
  4.     int i, j, c;
  5.     /* NULL定义在stdio.h文件中、#define NULL ((void *)0)*/
  6.     FILE *fp = NULL;
  7.                                                                     
  8.     if(!(fp = fopen("test.txt", "r"))) {
  9.         fprintf(stderr, "Can not open the file.\n);
  10.         /* void exit(int 状态值); 定义在stdlib.h文件中 */
  11.         /* 状态值表示终了状态,定义值如下: */
  12.         /* EXIT_SUCCESS: 0 */
  13.         /* EXIT_FAILURE: 1 */
  14.         exit(EXIT_FAILURE);
  15.     }
  16.                                                                     
  17.     for (i=0; i<3; i++) {
  18.         for (j=0; j<10; j++) {
  19.             c = fgetc(fp);
  20.             putchar(c);
  21.             putchar('\n');
  22.         }
  23.                                                                     
  24.         fp->_ptr -= 10;
  25.     }
  26.     fclose(fp);
  27.     /* system函数可以调用DOS系统命令 */
  28.     system("pause");                                                                
        return 0;                                                                
    }

②fopen()函数简介:
函数原型:FILE *fopen(const char *filename, const char *mode);
头文件:#include
参数: filename表示文件的名称,mode表示打开文件的模式。
打开文件模式mode主要有以下几种:
r: 读取模式
w: 写入模式(如果文件以及存在则覆盖集成内容,文件不存在则新生成文件)
a: 追加写入模式(从文件的最后开始写入)。
r+, w+, a+: 更新模式(这种模式下既可以写入也可以读取)。
返回值: 成功则返回文件指针,失败则返回NULL
例:  

点击(此处)折叠或打开

  1. if(!(fp = fopen("test.txt", "r"))) {
  2.     fprintf(stderr, "Can not open the file.\n");
  3.     exit(EXIT_FAILURE);
  4. }


4. 文件读取函数一览







5. 文件写入函数一览











6. 关闭文件









          
阅读(435) | 评论(0) | 转发(0) |
0

上一篇:【C语言】chapter 00. C语言学习方针和路线

下一篇:没有了

给主人留下些什么吧!~~