C语言程序设计基础课件 07 数据外部存储_第1页
C语言程序设计基础课件 07 数据外部存储_第2页
C语言程序设计基础课件 07 数据外部存储_第3页
C语言程序设计基础课件 07 数据外部存储_第4页
C语言程序设计基础课件 07 数据外部存储_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据外部存储C语言程序设计基础目录contents010203文件数据库应用习题与实践01文件操作基础文件操作引入数据永久存储需求程序运行时数据存于变量,程序结束变量数据消失。为永久保存数据,可通过文件将其存储在磁盘。学习目标通过本章学习,掌握文件读/写步骤实现数据永久存储,了解C程序对数据库操作的基本思路。导例读取通讯录文件问题描述:将朋友联系方式存于文件,在屏幕显示所有朋友信息。问题分析:通过文件指针操作文件,打开文件读取每行内容存于变量并输出。算法描述:定义指针和变量,打开文件,读入数据赋值到变量,输出变量内容,读完关闭文件。程序实现:给出C语言程序,包含文件打开、读取、输出和关闭操作。运行结果:显示通讯录文件中朋友的信息。程序分析:分析程序中文件指针的使用、打开方式、读取函数的调用及文件关闭操作。从通讯录文件中查询联系人问题描述:用户输入联系人姓名,显示其联系方式。问题分析:通过文件指针读取信息,与输入姓名比较,找到则输出。算法描述:定义指针和变量,输入姓名,打开文件,逐行比较,找到输出,未找到提示,关闭文件。程序实现:给出C语言程序,包含输入、文件读取、比较和输出操作。运行结果:显示查询到的联系人信息或未找到提示。程序分析:分析程序中文件读取、字符串比较和循环控制的实现。备份通讯录文件问题描述:将通讯录文件备份到新文件。问题分析:定义两个指针,一个读一个写,将原文件内容写入新文件。算法描述:定义指针,打开两个文件,逐字符读取原文件并写入新文件,关闭文件。程序实现:给出C语言程序,包含文件打开、读取、写入和关闭操作。运行结果:生成备份文件,内容与原文件一致。程序分析:分析程序中文件读/写操作和文件关闭的实现。导例:读取通讯录文件程序:#include<stdio.h>#include<stdlib.h>intmain(void){FILE*fp;charname[20];chartelephone[11];charemail[100];inti;fp=fopen("d:\\addr_list.txt","r"); //打开文件"addr_list.txt"if(fp==NULL){printf("Fileopenerror!\n");exit(0);}for(i=1;i<=6;i++){fscanf(fp,"%s%s%s",name,telephone,email); //从文件读入联系人信 //息到变量printf("%-20s%-20s%-20s\n",name,telephone,email); //输出信息到屏幕}if(fclose(fp)) //关闭文件{printf("Cannotclosethefile!\n");exit(0);}return0;}导例:从通讯录文件中查询联系人#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(void){FILE*fp;charname[20];charaddrlist[140];intlen,find=0;printf("Enterafriend'sname:\n");scanf("%s",name);len=strlen(name);fp=fopen("d:\\addr_list.txt","r"); //打开文件"addr_list.txt"if(fp==NULL){printf("Fileopenerror!\n");exit(0);}while(!feof(fp)){fgets(addrlist,150,fp); //从fp所指向的文件中读入一行联系人信 //息到addrlistif(strncmp(name,addrlist,len)==0) //比较name、addrlist字符串前len

个字符是否相同{printf("Thefriend'saddr:\n");printf("%s\n",addrlist);find=1;break;}}if(find==0)printf("NotFound!");if(fclose(fp)) //关闭文件{printf("Cannotclosethefile!\n");exit(0);}return0;}导例:备份通讯录文件#include<stdio.h>#include<stdlib.h>intmain(void){FILE*fpr,*fpw;charch;

if((fpr=fopen("d:\\addr_list.txt","r"))==NULL) //打开文件"addr_list.txt",读操作{printf("Fileaddr_list.txtopenerror!\n");exit(0);}if((fpw=fopen("d:\\backup.txt","w"))==NULL)//打开文件"backup.txt", //写操作{printf("Fileaddr_list.txtopenerror!\n");exit(0);}while(!feof(fpr)){ch=fgetc(fpr); //从fp1所指向的文件中读取一个字符if(ch!=EOF)fputc(ch,fpw); }printf("BackupFinished!\n");if(fclose(fpr)) //关闭文件{printf("Cannotclosethefileaddr_list.txt!\n");exit(0);}if(fclose(fpw)) //关闭文件{printf("Cannotclosethefilebackup.txt!\n");exit(0);}return0;}文件基本概念文件的概念文件是相关信息集合,以文件名操作,分文本和二进制文件。文本文件按ASCII码存储,可编辑查看;二进制文件直接存储二进制数据,用记事本打开显示乱码。缓冲文件系统C程序采用缓冲文件系统处理文件,系统为文件分配缓冲区,读文件时先将数据读入缓冲区再到内存,写文件时先将数据放入缓冲区,满后写入磁盘。文件基本操作文件指针C语言定义FILE类型指针,操作文件时系统分配缓冲区,指针指向缓冲区信息。打开文件使用fopen()函数打开文件,指定文件名和打开方式,返回文件指针,失败返回NULL。读文件操作提供字符、字符串和格式化三种读操作方式,分别使用fgetc()、fgets()和fscanf()函数。写文件操作提供字符、字符串和格式化三种写操作方式,分别使用fputc()、fputs()和fprintf()函数。关闭文件使用fclose()函数关闭文件,返回0表示正常关闭,关闭后释放缓冲区和FILE结构。02数据库应用数据库操作导例创建MySQL数据库问题描述:将通讯录信息存储到MySQL数据库,创建对应数据库和表。问题分析:创建包含姓名、电话和邮箱字段的表。问题实现:安装MySQL数据库,通过命令登录,创建数据库和表,插入数据并查询。从MySQL数据库中读/写通讯录问题描述:在数据库中插入联系人记录,读取并显示所有记录。问题分析:通过MySQL库函数实现插入和查询操作。算法描述:定义变量,初始化连接,执行插入和查询语句,输出结果。程序实现:给出C语言程序,包含插入和查询函数的定义和调用。运行结果:显示插入成功信息和查询到的记录。程序分析:分析程序中数据库连接、SQL语句执行和结果处理的实现。导例:从MySQL数据库中读/写通讯录#include<string.h>#include<stdlib.h>#include<stdio.h>#include<winsock2.h>#include<MySQL.h>#defineHOST"localhost"#defineUSERNAME"root"#definePASSWORD"root"#defineDATABASE"addr_list"voidinsert_sql(MYSQLconnection,char*sql){intres; res=MySQL_query

(&connection,sql); /*执行sql语句,返回值0,表示语句

执行成功*/if(res)printf("插入记录失败!\n"); elseprintf("插入记录据成功!\n"); }voidquery_sql(MYSQLconnection,char*sql){/*执行sql语句,并输出查询结果*/

C程序对MySQL数据库的操作Dev-C++环境设置在编辑环境中包含MySQL头文件并链接动态连接库,通过编译器选项进行设置。C程序对MySQL数据库操作的基本过程连接数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论