C语言文件操作总结
程序员文章站
2022-07-07 10:39:40
...
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);
}