Chinaunix首页 | 论坛 | 博客
  • 博客访问: 121318
  • 博文数量: 40
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 173
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-28 10:24
文章分类
文章存档

2014年(4)

2013年(36)

我的朋友

分类: C/C++

2014-02-17 17:30:40

有些配置文件会以文件的形式存储。如何按行读出来呢?   当然存成xml格式是最好的。
介绍一个函数fgets, 估计是get string from file的缩写吧。这个函数在百度的百科里有详细介绍。摘录一下:

fgets 从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第 bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。函数成功将返回buf,失败或读到文件结尾返回 NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。
函数原型:char *fgets(char *buf, int bufsize, FILE *stream);
参数:
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明buf指向的字符数组的大小。
*stream: 文件结构体指针,将要读取的文件流。

点击(此处)折叠或打开

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5.     FILE *stream;
  6.     char string[] = "This is a test";
  7.     char msg[20];
  8.     /* open a file for update */
  9.     stream = fopen("DUMMY.FIL", "w+");
  10.     /* write a string into the file */
  11.     fwrite(string, strlen(string), 1, stream);
  12.     /* seek to the start of the file */
  13.     fseek(stream, 0, SEEK_SET);
  14.     /* read a string from the file */
  15.     fgets(msg, strlen(string)+1, stream);
  16.     /* display the string */
  17.     printf("%s", msg);
  18.     fclose(stream);
  19.     return 0;
  20. }


阅读(2806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~