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

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

阅读更多
数据块读写函数fread和fwtrite
    C语言还提供了用于整块数据的读写函数。可用来读写一组数据,如一个数组元素,一个结构变量的值等。
读数据块函数调用的一般形式为:
fread(buffer,size,count,fp);
写数据块函数调用的一般形式为:
fwrite(buffer,size,count,fp);
其中:
buffer是一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函数中,它表示存放输出数据的首地址。
    size   表示数据块的字节数。
    count  表示要读写的数据块块数。
    fp     表示文件指针。
例如:
fread(fa,4,5,fp);
其意义是从fp所指的文件中,每次读4个字节(一个实数)送入实数组fa中,连续读5次,即读5个实数到fa中。

/*从键盘输入两个学生数据,写入一个文件中,再读出这两个学生的数据显示在屏幕上.*/
#include<stdio.h>
struct stu
{
  char name[10];
  int num;
  int age;
  char addr[15];
}boya[2],boyb[2],*pp,*qq;

main()
{
  FILE *fp;
  char ch;
  int i;
  pp=boya;
  qq=boyb;

  if((fp=fopen("stu_list","wb+"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    getchar();
    exit(1);
  }

  printf("input data:");
  for(i=0;i<2;i++,pp++)
    scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);

  pp=boya;
  fwrite(pp,sizeof(struct stu),2,fp);
  rewind(fp);
  fread(qq,sizeof(struct stu),2,fp);
  printf("\n\nname\tnumber	age	addr\n");
  for(i=0;i<2;i++,qq++)
  printf("%s\t%d	%d	%s\n",qq->name,qq->num,qq->age,qq->addr);
  fclose(fp);
}



#include<stdio.h>
struct stu
{
  char name[10];
  int num;
  int age;
  char addr[15];
}boya[2],boyb[2],*pp,*qq;

main()
{
  FILE *fp;
  char ch;
  int i;
  pp=boya;
  qq=boyb;
  
  if((fp=fopen("stu_list2","wb+"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    getchar();
    exit(1);
  }

  printf("input data:");
  for(i=0;i<2;i++,pp++)
    scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
  pp=boya;  //重新赋首地址

  for(i=0;i<2;i++,pp++)
    fprintf(fp,"%s	%d	%d	%s\n",pp->name,pp->num,pp->age,pp->addr);
  rewind(fp); //起作用了

  for(i=0;i<2;i++,qq++)
    fscanf(fp,"%s %d %d	%s\n",qq->name,&qq->num,&qq->age,qq->addr);

  printf("\n\nname\tnumber	age	addr\n");
  qq=boyb;  //重新赋首地址
  for(i=0;i<2;i++,qq++)
    printf("%s\t%d	%d	%s\n",qq->name,qq->num,qq->age,qq->addr);
  fclose(fp);
}



/*在学生文件stu_list中读出第二个学生的数据。*/
#include<stdio.h>
struct stu
{
  char name[10];
  int num;
  int age;
  char addr[15];
}boy,*qq;

main()
{
  FILE *fp;
  char ch;
  int i=1;
  qq=&boy;

  if((fp=fopen("stu_list","rb"))==NULL)
  {
    printf("Cannot open file strike any key exit!");
    getchar();
    exit(1);
  }
  rewind(fp);  //起作用了
  fseek(fp,i*sizeof(struct stu),0);
  fread(qq,sizeof(struct stu),1,fp);

  printf("\n\nname\tnumber\tage\taddr\n");
  printf("%s\t%5d\t%7d\t%s\n",qq->name,&qq->num,&qq->age,qq->addr);
}



#include<stdio.h>
int main(void) 
{ 
  FILE *fp; 
  char fname[10]="TXXXXXX", *newname, first; 
  newname=mktemp(fname); 
  fp=fopen(newname,"w+"); 
  if(NULL==fp)
  return 1;
  
  fprintf(fp,"abcdefghijklmnopqrstuvwxyz"); 
  rewind(fp); //起作用了
  
  fscanf(fp,"%c",&first); 
  
  printf("The first character is: %c\n",first); 
  
  fclose(fp); 
  remove(newname); 
  
  return 0; 
}


#include<stdio.h>
main()
{
  FILE *fp;
  char ch;
  if((fp=fopen("rew.txt","w+"))==NULL)
  {
    printf("Cannot open file any key exit!");
    getchar();
    exit(1);
  }

  fprintf(fp,"abcdefg");
  rewind(fp); //起作用了

  fscanf(fp,"%c",&ch);
  printf("ch:%c \n",ch);
  
  fclose(fp);
}



1.C系统把文件当作一个“流”,按字节进行处理。
2.C文件按编码方式分为二进制文件和ASCII文件。
3.C语言中,用文件指针标识文件,当一个文件被 打开时,可取得该文件指针。
4.文件在读写之前必须打开,读写结束必须关闭。
5.文件可按只读、只写、读写、追加四种操作方式打开,同时还必须指定文件的类型是二进制文件还是文本文件。
6.文件可按字节,字符串,数据块为单位读写,文件也可按指定的格式进行读写。
7.文件内部的位置指针可指示当前的读写位置,移动该指针可以对文件实现随机读写。
分享到:
评论

相关推荐

    C语言编程基础与范例

    《C语言编程基础与范例》是一本专为初学者设计的编程教程,它深入浅出地介绍了C语言的基础知识和编程技巧。C语言作为计算机科学中的基础编程语言,其简洁、高效的特点使得它在软件开发领域有着广泛的应用。本教程...

    基于单片机的C语言编程基础

    对于想要进入这个领域的初学者,掌握单片机的C语言编程基础至关重要。C语言是一种通用的、面向过程的编程语言,因其简洁、高效而被广泛应用于硬件控制,包括单片机编程。 本教程“基于单片机的C语言编程基础”主要...

    C语言基础-C语言编程基础之Leetcode编程题解之第30题串联所有单词的子串.zip

    在这个压缩包中,"C语言基础_C语言编程基础之Leetcode编程题解之第30题串联所有单词的子串"很可能是包含解答代码的文件,可能还包括了详细的解题思路和分析。通过阅读和学习这个文件,读者不仅可以了解如何解决这个...

    C语言编程基础.pptx

    本资源摘要信息将对C语言编程基础的知识点进行总结,涵盖C语言的基本概念、主要特点、Turbo C集成环境的使用、C语言的数据类型、C程序结构组成与设计方法、C函数的分类与调用、数组、文件与指针操作等。 一、C语言...

    Linux下C语言编程基础知识

    Linux下C语言编程基础知识是指在Linux操作系统下使用C语言进行编程的基本知识和技术。这里主要介绍了C语言源程序的编译、Makefile的编写和使用等基本概念和技术。 一、源程序的编译 在Linux下,如果要编译一个...

    C语言编程之道

    9. **文件操作**:C语言提供了文件输入输出功能,可以读写文本文件和二进制文件。书中会讲解fopen、fclose、fread、fwrite等函数的使用。 10. **错误处理和调试技巧**:学习如何使用printf和assert等工具来调试程序...

    C语言编程基础教程精讲

    内容概要:本PDF文件提供了关于《C语言编程基础》的详细教程,包括计算机基础概念、程序设计语言的发展历史以及C语言的基本特性与用途,并具体深入讲解C语言的各个主题内容,涵盖基础语法、常见关键字与标识符使用...

    C语言编程宝典(超经典)

    压缩包中的"C语言编程宝典之一.exe"可能是电子书的执行文件,这使得读者可以直接在计算机上阅读和学习,无需额外安装阅读软件。不过,为确保安全,建议在运行前进行病毒扫描。 总之,《C语言编程宝典》是一本涵盖了...

    C语言编程宝典之二chm资料

    通过《C语言编程宝典之二》的深入学习,读者不仅可以巩固C语言基础知识,还能掌握更高级的编程技巧,为未来深入学习操作系统、网络编程、嵌入式开发等领域奠定坚实的基础。CHM格式的电子书使得学习更加便捷,无论是...

    嵌入式系统高级C语言编程(扫描版)

    在《嵌入式系统高级C语言编程》中,作者首先会讲解C语言的基础知识,包括变量、数据类型、运算符、流程控制语句等,这些都是编程的基础。然而,本书的重点并不止于此,而是更进一步,深入到C语言的高级特性,如指针...

    PIC单片机C语言C语言编程实例

    另一方面,"PIC单片机C语言编程实例三.rar"是一个压缩文件,可能包含了更多的编程实例、项目文件或者额外的参考资料。解压后,用户可能发现源代码文件、项目配置文件以及可能的编译说明。这些资源有助于读者在实践中...

    C 语言编程宝典 C语言编程宝典

    9. **文件操作**:C语言提供标准输入/输出库(stdio.h),支持读写文本文件和二进制文件。掌握文件的打开、读写、关闭等操作,是实现数据持久化的基础。 10. **错误处理与调试**:学会使用断言(assert)、错误检测...

    c语言编程 c语言编程 c语言编程

    C语言编程是计算机科学的基础,它是一种强大的、通用的编程语言,被广泛应用于系统开发、软件工程、嵌入式系统以及各种应用程序的编写。对于新手来说,掌握C语言编程是迈入编程世界的必经之路。 C语言编程的核心...

    操作系统c语言模拟文件管理系统

    操作系统是计算机系统的核心组成部分,它负责管理系统的硬件资源和软件资源,为用户提供友好的接口和服务。在本项目中,我们通过C语言实现了一个基础...同时,这样的实践也能够提高我们的C语言编程技巧和系统编程能力。

    中等职业学校计算机应用专业c语言编程基础科试卷及答案.pdf

    本资源是中等职业学校计算机应用专业C语言编程基础科试卷及答案,涵盖了C语言的基础知识点,包括语言基本概念、数据类型、运算符、控制结构、函数、数组、指针、文件操作等。 一、语言基本概念 * Unix系统诞生于...

    嵌入式系统高级C语言编程(详细书签版本)

    这部分内容可能包括文件操作、串行通信、网络协议等。 9. **性能优化**:针对嵌入式系统资源有限的特点,书中可能会讨论代码优化技巧,如减少循环次数、利用编译器优化选项等。 10. **固件更新与安全**:随着...

    C语言编程宝典之一.rar_C语言_C语言编程宝典_c语言编程_visual c

    《C语言编程宝典之一》是一本专注于C语言学习的资源集合,旨在帮助读者深入理解和掌握C语言的基础和高级概念。C语言是一种强大的、低级的编程语言,被广泛应用于系统编程、软件开发、游戏引擎等多个领域。这本书或...

    C语言编程_C语言_c#读写文件_

    总的来说,C语言编程中的文件读写和指针操作是程序员必须掌握的基础技能。通过理解和实践这些知识点,你可以编写出功能丰富的应用程序,例如本例中的学生成绩管理系统。而C#的文件操作则展示了另一种面向对象的语言...

    [我的第①本c语言编程书:C语言从入门到精通](atcpu.com).pdf

    《我的第①本C语言编程书:C语言从入门到精通》这本书是初学者进入C语言编程世界的理想指南。C语言是一种强大的、基础的编程语言,被广泛应用于系统编程、软件开发、游戏制作等多个领域。它以其简洁的语法和高效的...

    C语言编程手册唐浩强版

    10. **文件操作**:C语言提供了文件操作接口,如fopen、fwrite、fread、fclose等,用于读写磁盘上的文件,是实现数据持久化存储的基础。 11. **编译与链接**:了解编译器的工作原理和链接器的作用,可以帮助我们更...

Global site tag (gtag.js) - Google Analytics