当前位置:   article > 正文

C语言文件操作总结

c语言文件操作总结

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

这个例子就是实现打开或新建一个文本文件,然后写入用户在控制台输入的数据。

为了避免文件打开失败导致的程序异常,打开文件一般按照如下格式:

if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打开可读写文件,若文件存在则清零,不存在则新建文件,a 模式不清零 
{
 printf("Cannot open file, press any key to exit!"); //文件无法打开 
}
  • 1
  • 2
  • 3
  • 4

最后也是非常重要的一部,对文件读写完毕后需要关闭文件,防止文件打开过多造成的文件读写混乱。

使用 fclose()函数关闭一个文件,

关闭文件,正常关闭时返回0,否则返回1
关闭时,系统会清除缓冲区,并把数据输出到磁盘文件,释放缓冲单元,使文件指针与具体文件脱钩。

fclose(fp);
  • 1

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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/852564
推荐阅读
相关标签
  

闽ICP备14008679号