`
microjava
  • 浏览: 309404 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

c语言编程基础之文件操作

阅读更多
文件使用方式               意义
    “rt”               只读打开一个文本文件,只允许读数据
    “wt”               只写打开或建立一个文本文件,只允许写数据
    “at”               追加打开一个文本文件,并在文件末尾写数据
    “rb”               只读打开一个二进制文件,只允许读数据
    “wb”               只写打开或建立一个二进制文件,只允许写数据
    “ab”               追加打开一个二进制文件,并在文件末尾写数据
    “rt+”    读写打开一个文本文件,允许读和写
    “wt+”    读写打开或建立一个文本文件,允许读写
    “at+”    读写打开一个文本文件,允许读,或在文件末追加数据
    “rb+”    读写打开一个二进制文件,允许读和写
    “wb+”    读写打开或建立一个二进制文件,允许读和写
    “ab+”    读写打开一个二进制文件,允许读,或在文件末追加数据

对于文件使用方式有以下几点说明:
1)文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
    r(read):        读
    w(write):       写
    a(append):      追加
    t(text):        文本文件,可省略不写
    b(banary):      二进制文件
    +:              读和写

2)凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3)用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4)若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5)在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
6)if((fp=fopen("c:\\hzk16","rb")==NULL)
         {
          printf("\nerror on open c:\\hzk16 file!");
          getch();
          exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。
7)把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
8)标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。

对文件的读和写是最常用的文件操作。在C语言中提供了多种文件读写的函数:
•字符读写函数  :fgetc和fputc
•字符串读写函数:fgets和fputs
•数据块读写函数:freed和fwrite
•格式化读写函数:fscanf和fprinf
下面分别予以介绍。使用以上函数都要求包含头文件stdio.h。

读文件操作
#include<stdio.h>
//#include"conio.h"
main()
{
  FILE *fp;
  char ch;
  if((fp=fopen("c1.txt","rt"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    getchar();
    //getch();
    exit(1);
  }
 
  ch=fgetc(fp);
  while(ch!=EOF)
  {
    putchar(ch);
    ch=fgetc(fp);
  }
  fclose(fp);
}



写文件操作
#include<stdio.h>
main()
{
  FILE *fp;
  char ch;
 
  if((fp=fopen("c2.txt","wt++"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    //getch();
    getchar();
    exit(1);
  }

  printf("input a string:");
  ch=getchar();
  while(ch!='\n')
  {
    fputc(ch,fp);
    ch=getchar();
  } 
  rewind(fp); //把文件内部位置指针移到文件头
  ch=fgetc(fp);
  printf("ch:%c",ch);
  printf("you input is:");
  while(ch!=EOF)
  {
    printf("putchar\n");
    putchar(ch);
    ch=fgetc(fp);
  }
  printf("\n");
  fclose(fp);
}



/*把命令行参数的前一个文件名标识的文件复制到后一个,若只有一个文件则打印出来*/
#include<stdio.h>
main(int argc,char *argv[])
{
  FILE *fp1,*fp2;
  char ch;
  if(argc==1)
  {
    printf("have not enter file name strike any key exit");
    getchar();
    exit(0);
  }
  if((fp1=fopen(argv[1],"rt"))==NULL)
  {
    printf("Cannot open %s\n",argv[1]);
    getchar();
    exit(1);
  }

  if(argc==2) fp2=stdout;
  else if((fp2=fopen(argv[2],"wt++"))==NULL)
  {
    printf("Cannot open %s\n",argv[2]);
    getchar();
    exit(1);
  }
  while((ch=fgetc(fp1))!=EOF)
    fputc(ch,fp2);

  fclose(fp1);
  fclose(fp2);
}



/*从文件中读入一个含有十个字符的字符串*/
#include<stdio.h>
main()
{
  FILE *fp;
  char str[11];

  if((fp=fopen("c1.txt","rt"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    getchar();
    exit(1);
  }
 
  fgets(str,11,fp);
  printf("\n%s\n",str);
  fclose(fp);
}



/*建立文件追加字符串*/
#include<stdio.h>
main()
{
  FILE *fp;
  char ch,st[20];

  if((fp=fopen("filewa","at++"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    getchar();
    exit(1);
  }
  
  printf("input a string:");
  scanf("%s",st);
  fputs(st,fp);

  rewind(fp);
  ch=fgetc(fp);
  while(ch!=EOF) 
  {
    putchar(ch);
    ch=fgetc(fp);
  }
  printf("\n");
  fclose(fp);
}

分享到:
评论

相关推荐

    Linux下C语言编程教程

    Linux下C语言编程入门教程 目录 第一章基础知识 ……………………………………………………………………………4 第二章进程介绍 …………………………………………………………………………10 第三章文件操作 ...

    linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门,基础知识、进程介绍、文件操作、时间概念、信号处理、消息管理、线程操作、网络管理

    Linux 操作系统 C语言编程入门 PDF

    第三章 文件操作 …………………………………………………………………………17 第四章 时间概念 …………………………………………………………………………27 第五章 信号处理 …………………………………………...

    C语言文件读写操作详解:高效处理文件数据.zip

    c语言文件读写操作代码文件读写是C语言编程中的基础技能之一。通过本文的介绍,你应该已经掌握了C语言中文件读写操作的基本概念和常用函数。在实际编程中,合理地使用文件流和标准I/O函数,可以帮助你高效地处理文件...

    Linux下C语言编程之经验总结

    对Linux下进行C语言编程进行了多方面的总结,包括Linux下C语言编程基础,进程的创建,进程通信、消息管理,文件的操作,信号处理函数.对于初学者,非常有用!!!推荐之

    C语言编程兵书(完整扫描版 )pdf格式 电子书

    文件操作;综合实例应用。随书所附光盘包含本书配套实例源文件、赠送的C语言学习资料和教学视频。本书适合所有想全面学习C语言的编程人员及C语言爱好者阅读。 章节目录: 第1篇 C语言开发基础 第1章 扎马步认识...

    C语言二级(apk)

    无论您是参加全国计算机考试C语言二级考试,还是参加省级C语言二级考试,本书都严格依照C语言二级考试大纲要求,全面增强您的C语言编程基础知识。提高您的C语言编程思想和开发实力,使您能够写出高质量的C语言代码...

    C语言二级安卓版

    无论您是参加全国计算机考试C语言二级考试,还是参加省级C语言二级考试,本书都严格依照C语言二级考试大纲要求,全面增强您的C语言编程基础知识。提高您的C语言编程思想和开发实力,使您能够写出高质量的C语言代码...

    Linux操作系统下C语言编程入门

    中文高清晰的PDF,从基础知识,进程介绍,文件操作,网络编程,开发工具等角度详述Linux操作系统下C语言编程入门,简单易懂。

    计算机科学与密码学基础-C语言编程实践-DES算法详解与文件加密解密应用指南

    内容围绕DES算法的核心原理、关键步骤(包括初始置换、16轮迭代处理、最终置换等)、以及具体的C语言编程实践,包含完整的代码示例和文件操作指南。适用于计算机科学、软件工程领域的学生、研究人员以及对加密技术感...

    C语言中的文件读写全解析,学习C语言的15个黄金建议.zip

    用途: 适用于编程初学者及希望提升C语言技能的开发者,帮助学习者通过具体实例理解C语言的文件操作过程,掌握基础至高级的编程概念与技巧,提高解决实际问题的能力。 在C语言编程领域,对文件的操作是一项基本而...

    unix平台下c语言高级编程指南

    1.3 高级的文件操作 第2章 终端操作 2.1 终端的基本概念 2.2 终端输入和输出 2.3 ioctl系统调用 第3章 进程及进程间通信 3.1 进程的基本概念 3.2 进程的一般操作 3.3 进程的特殊操作 3.4 进程间使用管道通信...

    linux下c语言编程入门

    这是一本学习linux下c语言编程的入门书籍,非常适合于初学者,从非常基本的概念入手,结合程序实例介绍了linux下c语言的基础。本书简介明了的介绍了c语言基础知识、进程介绍、文件操作、时间概念、信号处理、消息...

    linux下C语言编程入门

    一个初级的linux下C语言编程教程,dpf格式: 一共9章: 1.基础知识 2.进程介绍 3.文件操作 4.时间概念 5.信号处理 6.消息管理 7.线程操作 8.网络编程 9.Linux下C开发工具介绍

    C语言经典编程282例——源码

    本书内容包括初识c语言、简单的c程序、算法入门、常用数据类型、运算符与表达式、数据输入与输出函数、选择和分支结构程序设计、循环结构、数组、函数编程基础、指针、常用数据结构、位运算操作符、存储管理、预处理...

    linux操作系统下C语言编程入门

    linux操作系统下C语言编程入门 目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)...

    C语言基础编程练习100题,经典案例,实际运行代码

    这些案例涵盖了各种不同难度级别的问题,涉及基本语法、数组、函数、指针、结构体、文件操作等方面,适合初学者和有一定基础的程序员练习和学习。 每个案例都包含了详细的题目描述、示例代码和解题思路,帮助读者更...

    C语言文件读写操作教程与示例代码.docx

    在C语言编程中,文件读写是一项非常重要的基础操作。通过文件读写,我们可以将数据保存到文件中或从文件中读取数据。本文将带领读者深入了解C语言文件读写操作的原理和使用方法,并提供丰富的示例代码,帮助读者更好...

Global site tag (gtag.js) - Google Analytics