codeblock图形界面编程(十)文件操作

10 篇文章 2 订阅
3 篇文章 0 订阅

codeblock图形界面编程(十)文件操作

打开我们的计算机,无论是花花绿绿的图片、动感激烈的视频或者是各种各样的资料、数据,要想在电脑中存储、复用,无不是以文件形式保存在计算机硬盘中。所以,应用程序设计中,文件操作是必不可少的,它可以让我们把目标内容、数据存储到计算机硬盘上,以供下次使用或者用于交流、传输或再加工等等,这样,即使我们的app停止了运行,或者在大型协作任务中退出了,数据仍然保留,下次我们可以再次从电脑中读取数据内容,继续工作,通过这些文件操作,使得我们实现了数据的持久化,信息的交流、存储或再加工就有了基础。

C语言的文件管理

文件指针

C编译器中,每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,通过一个FILE的指针来维护这个FILE结构的变量,实例如下:

	FILE* pf;//文件指针变量

文件打开

pf建立了指针和文件的联系后,使用fopen函数来打开文件,fopen函数原型:

	//打开文件函数:
	FILE *fopen( const char *filename, const char *mode );

在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图:

在这里插入图片描述

文件关闭

利用fclose来关闭文件。和fclose函数原型为:

	//关闭文件函数:
	int fclose( FILE *stream );

文件读

我们使用文件的目的无外乎对文件的读和写,常用的函数有:

  1. fgetc函数,函数原型:

     int fgetc( FILE *stream );
    

该函数作用是从文件流或者标准输入流stdin(键盘)中读取一个字符。正常读取返回该字符的ASCII码。读取错误或者读取结束则会返回EOF,EOF是-1,因此其是用int类型返回值!

2 fgets() 获取一行,其原型定义为:

	char *fgets(char *s, int size, FILE *stream);

fgets() 有三个参数:

       FILE *stream  文件指针
        int size    读取大小
        char *s,  读出得数据存储指针,指向存储缓冲区,可以是字符数组名,也可以是指向字符数组的字符指针变量名

其功能是从 stream 流中读取 size 个字符存储到字符指针变量 s 所指向的内存空间。它的返回值是一个指针,指向字符串中第一个字符的地址。

文件写

和文件读对应,常用的文件写函数有:

  1. fputc()函数用于将单个字符写入文件。它将一个字符输出到流。fputc()函数原型定义为:

     int fputc(int c, FILE *stream)
    
  2. fputs() 函数也是用来显示字符串的,它的原型是:

     int fputs(const char *s, FILE *stream);
    

两个参数:
s 代表要输出的字符串的首地址,可以是字符数组名或字符指针变量名。
stream 表示输出流,可以是标准输出流 stdout,也可以是文件流

图形界面的文件操作管理

图形界面具有界面友好,直观和容易使用的特点,用户往往通过鼠标和图形窗口的方式来选择文件进行操作,例如windows的explorer,界面如下:

在这里插入图片描述怎么实现昵?下面以codeblock20为例介绍

配置libcomdlg32.a库

在 Code::Blocks 20.03 中,要使用FileDialog(szFile))来图形化的打开文件对话框,需要comdlg32.a库的支持,配置方法如下:
1.选择Settings -> compiler

在这里插入图片描述2.选择linker settings,选择add -> 浏览, D:\Program Files\CodeBlocks\MinGW\x86_64-w64-mingw32\lib找到libcomdlg32.a并添加,添加好如下图:

在这里插入图片描述当然,具体目录地址需要根据你的codeblock安装地址选择即可。

系统功能的实现

char szFile[100] = {0};
if(FileDialog(szFile))
{
	puts(szFile);
}
in = fopen( szFile, "r" );
if(in==NULL)
{
    printf("open error\n");
    return;
}
while(fgets(line_buff,sizeof(line_buff),in))//逐行循环读取文件,直到文件结束
{
  //文件的数据处理操作
}
fclose(in); //使用完毕,关闭文件

至此,我们实现了图形界面下的文件打开、读取、操作和关闭的全流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值