C语言或C++怎样从文本文件中读取和保存数据
创始人
2024-12-25 17:03:23
0次

在C程序中:

  ——文件流:C标准库提供了FILE(之所以命名为FILE,因为linux将所有机制都视为文件),FILE对象是一个包含了管理流所需的所有信息的结构,包括缓冲区信息、各种标记(如文件结束标记和错误标记)以及用于实际I/O的文件描述符等。

  ——输入流,输入流:数据从文件传送到内存的叫输入流,数据从内存传送到文件的叫输入流。——打开文件:FILE对象通过调用fopen函数创建的。如:FILE*fp,fp=fopen("filename","r"),表示以只读的方式建立与filename相关的文件流;filename为当前目录下的相对路径名,r代表可读(打开文件的模式)。

读取

  对一些有规范格式文件的读取,可使用标准库stdio.h下的fscanf函数,

  函数原型为:intfscanf(FILE*stream,constchar*format,[argument...])

  如读取文件data.txt(数据格式相对规范)

  代码实现读取:

  复制代码

  //test.c

  //文件读取

  #include

  intmain()

  {

  //1:创建文件流,文件指针名=fopen(文件名,使用文件方式)打开失败则返回NULL;

  FILE*fp=fopen("./data.txt","r");//以data.txt文件为例

  //2:检测文件是否打开成功;

  if(!fp){

  printf("打开失败!\n");

  return-1;//返回异常

  }

  //3:

  intnum;//用来储存一个整型数据

  charname[10],place[10];//用来储存两个字符串数据

  //抽象理解:

  //理解文件位置含义:其表示已打开文件当前可读写字符的位置,其表示为一个到文件头的整数;

  //fscanf在读取数据时可以这样理解:文件被打开后,它就成了一个无序字节流(水流),其会通过一个管道,流向被读取的一端;

  //了解fscanf后知道,其遇到空格字符(空格,制表符),换行符,就会停止,这里的停止我们可以理解为:

  //停下来为文件中两个不相关的数据块做一个分隔的操作,刚好适应了我们一般将空字符(包括换行符)作为两个数据之间的分隔的行为;

  //我们只需理解管道的两端

  //流进管道的一端的位置,就是文件的位置,表示已被读到的位置。

  //流出管道一端,就是进程用来读取数据的一端,其可以对管道中已经做区分的数据进行读取。

  //4:读取:

  fscanf(fp,"%d%s%s",&num,name,place);//fscanf对流的格式化读取。

  //注1:fscanf(fp,"%da%s%s",&num,name,place);可以实现对数据:1a小刚河南;的准确读取,表示两个数据之间以a为界。

  //注2:因为流是指针的性质,所以函数是将各数据块的首地址交给对应参数,所以num需进行&取地址操作,

  //注3:因为name,place本身已表达地址,所以不用改变;

  fscanf(fp,"\n");

  //\n为控制字符,此时文件的位置到了第二行的开始;

  //接着进行操作:fscanf(fp,"%d%s%s",&num,name,place);就可以继续读取第二行

  //所以我们常常只需利用一个while语句就可以将整个文件读取到一个数据结构(进程)中

  /*

  while(!feof(fp))//feof()检测一个文件是否结束,即到达文件尾,若结束,则返回非0值,否则返回0

  {

  fscanf(fp,"%d%s%s\n",&num,name,place);

  }

  */

  //检测读取结果

  printf("%d%s%s\n",num,name,place);

  //关闭流

  fclose(fp);

  return0;

  }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...