赞
踩
1、文件的写
首先还是先看一个简单的例子:
include<stdio.h> int main() { FILE *fp; //声明一个文件指针,指向文件缓冲区的首地址 char ch; if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打开可读写文件,若文件存在则清零,不存在则新建文件,a 模式不清零 { printf("Cannot open file, press any key to exit!"); //文件无法打开 } printf("Input a string:\n"); while ((ch = getchar()) != '\n' ) { putc(ch,fp); //该函数将字符写入文件,与 fputc 的区别? 感觉没区别 好像一个是putc宏 一个fputc是函数 } fclose(fp); return 0; }
这个例子就是实现打开或新建一个文本文件,然后写入用户在控制台输入的数据。
为了避免文件打开失败导致的程序异常,打开文件一般按照如下格式:
if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打开可读写文件,若文件存在则清零,不存在则新建文件,a 模式不清零
{
printf("Cannot open file, press any key to exit!"); //文件无法打开
}
最后也是非常重要的一部,对文件读写完毕后需要关闭文件,防止文件打开过多造成的文件读写混乱。
使用 fclose()函数关闭一个文件,
关闭文件,正常关闭时返回0,否则返回1
关闭时,系统会清除缓冲区,并把数据输出到磁盘文件,释放缓冲单元,使文件指针与具体文件脱钩。
fclose(fp);
2、文件的读
到这里关于文件的写操作就基本上是这些,下面是关于文件的读操作,其实和写差不多。
先看一下完整的代码
#include <stdio.h> #include <stdlib.h> int main() { FILE *fp; char ch; char str[80]; char file_name[15]; //输入文件名称缓冲 //如果文件和本程序在同一个文件下面,则直接输入txt文件名即可 //如果不在同一目录下面,则需要输入完整文件路径格式 //如 : e:\\test.txt printf("please enter the filename: "); //注意输入文件名时需要带上文件的后缀.txt gets(file_name); //gets函数用来读取用户输入的字符串,专门针对字符串处理设计的 if((fp = fopen(file_name,"r")) == NULL ) //r模式不能写入数据,只能读取 { printf("Cannot open file, press any key to exit!\n"); //文件无法打开 exit(0); } /* while( (ch = getc(fp)) != EOF ) //getc函数从文件中读取单个字符 { putchar(ch); //循环输出单个字符 } putchar('\n'); //输出一个换行 */ while((fgets(str,80,fp)) != NULL) puts(str); fclose(fp); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。