C语言实例——入账

171 阅读1分钟
#include <stdio.h>
#include <time.h>
#include <string.h>



int main() {//需要创建一个文本文件存储数据
    void search_date();
    void account_time();
    int mark;
    void _Account();
   printf("请输入要选择的功能:1.存入账本\n2.日历查找账本\n");
   scanf("%d",&mark);
   switch(mark){
       case 1:
           account_time();
           _Account();
           break;
       case 2:
           search_date();
           break;
       default:printf("输入错误!");
   }
    return 0;
}
//入账
void _Account(){

    char mark[50];
    int consumption;
    FILE *fp =fopen("/Users/baifeng/CLionProjects/the project1/data.txt","a");
    printf("请输入用途:\n");
    scanf("%s",mark);
    fprintf(fp,"%s:",mark);
    printf("请输入花费:\n");
    scanf("%d",&consumption);
    fprintf(fp,"%d\n",consumption);
    fclose(fp);
}



//关键词搜索

//关键词加入

//时间生成(入账调用)

void account_time(){
    FILE *fp = fopen("/Users/baifeng/CLionProjects/the project1/data.txt","a");
    int date;
    time_t timep;
    struct tm *p;
    time (&timep);
    p=gmtime(&timep);
    date = p->tm_mday;
    fprintf(fp,"date:%d\n",date);
    fclose(fp);

}

//日历寻找
void search_date(){
    FILE *fp = fopen("/Users/baifeng/CLionProjects/the project1/data.txt","r");
    char com[10];
    char print[20];
    char mark;
    char ch[10] = "date:";
    char date[3];
    printf("请输入日期:");
    scanf("%s",date);
    strcat(ch,date);
    strcat(ch,"\n");//文本文件换行会有"\n"


    while(1){
        fgets(com,10,fp);
        if(strcmp(ch,com) == 0){
            fscanf(fp,"%s",print);
            puts(print);
            memset(com,0,10);//清空com
        }
        mark =getc(fp);
        if(mark == EOF)//获取'\n'字符,并且最后结束时做出判断
            break;
    }


    fclose(fp);
}


//无法实现字典查找,因为是文本文档的,没有变量储存
//日历查找实质为字符比较