如何在C中使用用户定义的名称打开文件

时间:2018-12-13 02:27:54

标签: c arrays string text-files

基本上,我从用户那里获取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);
}

当前在输入说09/09/99johnsmith时 输出是

johnsmith09/09/99
ERROR

然后程序退出。

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

0 个答案:

没有答案