我该如何避免“?”在用用户输入名称创建的文件?

时间:2017-11-19 19:27:18

标签: c string file

我正在使用C语言中的文件进行一些测试,其中一个测试是创建一个文件,其名称由用户输入,但我注意到我创建的每个文件都以“?”命名。我假设它是一个特殊字符,因为我从未在我用来获取文件路径的路径字符串中插入问号,但我不确定这个字符是什么,我很想知道如何从字符串中删除它。

我还注意到,即使该文件不存在,此代码也会创建该文件。我不知道为什么。

 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <string.h>

 const int DIM = 1024;


 int main()
 {
    FILE *fp;
    char c;
    char path[DIM];
    do
    {
            printf("\nFile path: ");
            fgets(path, 1024, stdin);
            fp = fopen(path, "w");
            if(fp == NULL)
            {
                    perror("Error: ");
                    free(fp);
                    printf("Retry? [y/n]");
                    scanf("%c", &c);
                    getchar();
            }
    }while(c == 'y' || c == 'Y');


 }

0 个答案:

没有答案