T通过代码创建、读取文件

来源:互联网 发布:淘宝会员有什么用 编辑:程序博客网 时间:2024/06/06 09:16
1.创建文件并写入信息
       
 FILE * fp = NULL;fopen_s(&fp,"name.txt", "w");        int n = 123456;fwrite(&n, sizeof(int), 1, fp);  //将联系人个数保存到磁盘fclose(fp);

        fopen函数是打开文件的函数,第一个参数是文件地址的地址,第二个参数是保存的文件名,第三个参数是对文件的操作类型(w代表写入,r代表读取,a代表在文件末尾添加)
    fwrite函数是以二进制形式对文件进行操作的输入函数,第一个参数问要写入的变量,第二个参数是写入变量的大小,第三个参数是复写次数,第四个变量为文件地址;
   注:1.操作类型为w时,如果没有该文件名的文件,则自动创建;如果有,则会清空文件中的内容,等待重新写入
                     2.打开文件后一定要用fclose函数来关闭文件。

2.读取文件信息

FILE * fp = NULL;fopen_s(&fp, per, "r");
        int n;        fread(&n, sizeof(int), 1, fp); //读取信息
        printf("%d",n);              //将读取的信息输出到控制台fclose(fp);

3.在文件末尾添加信息


FILE * fp = NULL;fopen_s(&fp,"name.txt", "a");        int n = 999;fwrite(&n, sizeof(int), 1, fp);  //将联系人个数保存到磁盘fclose(fp);
// p0515.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #define per "persons" //宏定义一个文件名#include bool menu();void add();void show();void init();void save();void remove();void alter();void find();struct Penson{char name[100];char phone[100];};     //保存联系人输入格式的结构Penson penson[1000];    //保存联系人的数组int n=0;                //当前联系人个数int main(){init();while (true) {if (!menu()) {return 0;  }}    return 0;}bool menu() {printf("1、添加一个联系人\n");printf("2、删除一个联系人\n");printf("3、修改一个联系人\n");printf("4、查找一个联系人\n");printf("5、显示全部联系人\n");printf("6、退出\n");printf("请输入你要操作的功能编号:");char ca[100];scanf_s("%s", ca, 100);switch (ca[0]){case '1': add();break;case '2':remove();break;case '3': alter();break;case '4':find();break;case '5':show();break;case '6':return false;break;default:printf("输入有误");break;}return true;}//添加联系人void add(){char temp[100];printf("请输入新建联系人姓名:");scanf_s("%s", temp, 100);           //输入联系人姓名strcpy_s(penson[n].name, temp);printf("请输入新建联系人电话:");scanf_s("%s", temp, 100);           //输入联系人电话strcpy_s(penson[n].phone, temp);n++; //联系人个数加1save();}//保存到磁盘void save() {FILE * fp = NULL;fopen_s(&fp, per, "w");fwrite(&n, sizeof(int), 1, fp);  //将联系人个数保存到磁盘for (int i = 0; i < n; i++) {fwrite(&penson[i], sizeof(Penson), 1, fp); //将联系人信息保存到磁盘}fclose(fp);}//显示所有联系人void show() {if (n < 1) {//n小于1时显示没有联系人printf("当前还没有联系人");}printf("编号\t\t姓名\t\t电话\n");for (int i = 0; i < n; i++) {   //遍历联系人数组,并输出printf("%d\t\t%s\t\t%s\n",i+1,penson[i].name,penson[i].phone);}}//初始化文件void init() {FILE * fp = NULL;fopen_s(&fp, per, "r");if (fp != NULL) {fread(&n, sizeof(int), 1, fp); //将联系人个数读到内存中for (int i = 0; i < n; i++) {fread(&penson[i], sizeof(penson), 1, fp); //将联系人读到内存中}}else{return;}fclose(fp);}//删除联系人void remove() {if (n > 0) {show();printf("请输入你想删除的联系人编号(1-%d):", n);char num[4];int nu = atoi(num);scanf_s("%d", &nu);if (nu > 0&&nu<=n) {for (int i = nu - 1; i < n; i++) {penson[i] = penson[i + 1];}penson[n - 1] = { "" };n--;save();}else{printf("输入有误\n");}}else{printf("电话本中还没有联系人\n");}}//修改联系人void alter() {printf("请输入你想修改的联系人编号:");int num;scanf_s("%d", &num);char tem[100];printf("请输入联系人姓名:");scanf_s("%s", &tem,100);strcpy_s(penson[num-1].name, tem);printf("请输入联系人电话:");scanf_s("%s", &tem,100);strcpy_s(penson[num-1].phone, tem);save();}//查找联系人void find() {printf("请输入你想查找的联系人编号:");int num;scanf_s("%d", &num);printf("姓名:%s,电话:%s\n", penson[num - 1].name, penson[num - 1].phone);}
原创粉丝点击