首页 > 解决方案 > 如何在c中打开具有用户定义名称的文件

问题描述

本质上,我从用户那里获取 3 个字符串,然后将它们全部连接成第 4 个字符串,这应该是存储字符串的文本文件的名称。

void getBasicDetails(char date_of_birth[9], char first_name[20], 
                     char last_name[20])
{
    char temp_dob[9];
    char temp_fname[20];
    char temp_lname[20];
    char file_name[60];
    int stop = 1;
    printf("Patient's Date of Birth (in format dd/mm/yy) : "); // 2 and 5
    while (stop == 1)
    {
        scanf("%s", &temp_dob);
        emptyBuffer();
        if ((temp_dob[2] == '/' && temp_dob[5] == '/'))
        {
            stop = 0;
            break;  
        }
        else
        {
            printf("Enter in format dd/mm/yy\n");
        }
    }
    date_of_birth = temp_dob;
    date_of_birth[9] = '\0';

    printf("Patient's First Name : ");
    scanf("%s", &temp_fname);
    emptyBuffer();
    first_name = temp_fname;
    first_name[20] = '\0';

    printf("Patient's Last Name : ");
    scanf("%s", &temp_lname);
    emptyBuffer();
    last_name = temp_lname;
    last_name[20] = '\0';
    sprintf(file_name, "%s%s%s", first_name, last_name, date_of_birth);
    printf("%s\n", file_name);
    file_name[60] = 0;

    FILE *fptr;
    fptr = fopen(file_name , "w");
    if (!fptr)
    {
        printf("ERROR");
        exit(1);
    }
    fprintf(fptr, "First Name : %s\n", first_name);
    fprintf(fptr, "Last Name : %s\n", last_name);
    fprintf(fptr, "Date Of Birth : %s\n", date_of_birth);
    fclose(fptr);
}

当前输入say09/09/99johnsmith 输出为

johnsmith09/09/99
ERROR

然后程序退出。

任何和所有反馈都将不胜感激(包括我的代码通常很糟糕)。

标签: carraysstringtext-files

解决方案


推荐阅读