所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

c语言实现能否保存数据?

发布时间:2020-04-12 08:41:22

资讯分类:c语言  保存  能否  学籍  数据库  文件  数据
c语言实现能否保存数据?

C语言可以保存数据,主要方法有两种:直接写入文件(比如txt文件);存入数据库.

首先简要介绍下两种方法的使用;

1.直接写入文件:

思想流程:假如需要将数据保存在txt文件里,在准备存入数据的时候,使用fopen函数,以写的方式打开文件,接着使用常见的fprint,fwrite等函数,对应类型的数据写入文件。数据写入完毕后,使用fclose函数关闭文件。这样走完流程,数据就会存在对应的txt文件中。

代码示例:(保存从终端输入的数据到test.txt文件中)

2.存入数据库

针对题主的问题,个人推荐使用数据库进行存储。数据库是专门存储数据用的。(如果没接触过,可以先做一个了解)。

与C语言打交道的数据库,以Microsoft SQL Server和Sqlite为主。二者的差异,可以简单先理解为后者属于轻量级,更适合小型项目使用。

如果使用microsoft Sql Server,需要首先安装该软件,接下来需要去了解什么是ODBC(开放式数据库互联)。先配置ODBC环境,在通过ODBC API,使用函数SQLConnect数据库。相关内容比较复杂,建议直接百度或Google《C语言使用ODBC链接SQL Server数据库》。

Sqlite是一种文件型数据库,他的优点就是,不需要使用任何数据库引擎(比如上述的需要ODBC),也就意味着,我们不需要安装数据库。这种数据库操作和直接向文件中储存数据类似,只不过他更专业一些。常见的函数有:sqlite3_open(文件名,sqlite3 **),打开数据库,sqlite3_close(sqlite3 *)关闭数据库。

给一段伪代码,供你参考:

我是步入科技圈,希望文章对你有帮助。如果在使用中有什么问题,可以与我沟通。喜欢我的话,关注一下呗。

c语言实现能否保存数据?

我是鹏鸟,热衷回答有关C语言学习疑问和家庭视听娱乐领域的问题。本回答为鹏鸟原创,欢迎转发哦!

网上给出的C语言标准代码是将数据保存在内存中,程序关闭后,内存的数据当然也就消失了,就像你使用word写文章,如果没有保存的话就关电脑,那么你写的文章也会消失的。所以一定要将数据保存在本地硬盘上。

C语言中将数据保存在本地硬盘的方法很多,我就说一种方法,使用C语言标准的文件I/O函数库的fwrite函数来保存数据。我给出一个示范代码:

代码中我定义了一个通讯录,这个通讯录很简单,只有人的姓名和电话。我使用文件I/O函数的fwrite函数将这个通讯录保存在本地的TXT文件上。我运行了3次,运行完成后,我打开TXT文件,内容如下:

通讯录的内容以文本的形式保存在本地,这样电脑关机或者程序退出数据都不会丢失了。

可以在这个示范程序上进行扩展,设计出更为复杂的程序,实现更为复杂的功能。

小伙伴们有疑问的可以在留言交流哦!

c语言实现能否保存数据?

给你目前比较流行的解决方案。

一.二进制数据文件

直接将你存储数据的结构以二进制的方式写入文件,下次可以原封不动的读入但原有数据结构中,缺点一是结构体包含指针变量时需要特殊处理,还原时也要特别小心这些数据指针,缺点二是不易跨平台,不同平台或编译器对数据结构的内存对齐方式不一致,解决办法是写入时采用一字节对齐。

二.ini文件

这种是常见的配置文件格式,格式如下

[group]

key=value

windows有现成的解析和写入函数,可方便读写,缺点是并不适合存储复杂数据。

三.XML文件

xml比ini复杂,可以存入任何数据,每个标签可以有属性,读取和写入都很方便,但面对复杂的数据关系,也力不从心。

四.json文件

可以描述任何可视的数据,包括字符串,整型,浮点类型等基本数据类型,还可以存储包含这些基本类型的数组或对象,缺点是无法存储不可读数据,如二进制数据,目前在互联网非常流行,有取代xml的节奏,json的解析速度非常快,数据结构清晰,符合人类阅读习惯,rapidjson是腾讯的纯c++开源代码,只是一些模板头文件,没有cpp文件,包含即可,使用简单。

五.序列化

将类或结构体以某种方式写入文件,将来可以反序列化回原有数据结构,boost库是支持序列化的,序列化克服了第一点直接写文件带来的问题,可以写入指针数据,包括其他复杂数据类型,如list和map。

六.数据库

数据可以经过组织写入数据库文件中,但原有数据结构可能就不能直接使用了,需要分解为数据库中的各个表,优点是数据查询方便,可以处理复杂的数据关系,很多数据库支持事务,操作错误可以回滚数据,有日志等等,缺点是写入速度可能是这几点中最慢的

c语言实现能否保存数据?

你没有学文件操作吧?

程序运行中打开文件,程序退出时保存文件。

FILE *fp;

fp=fopen("filename

留言与评论(共有 0 条评论)
   
验证码:
Top