我正在使用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');
}