我有一个使用fgets
获取用户输入的程序,但是当输入有空格时,它似乎不稳定。
所以当我输入文件1然后按回车键时,这就是输出
`FilePlease enter your file Name`
`1Please enter your file Name`
如果我没有空格进行比较,它似乎有效。
int MAX_NAME_SZ = 256;
char * fileName = malloc (MAX_NAME_SZ);
while (ValidateFileName(fileName) != 0)
{
printf("Please enter your file Name\n");
fgets (fileName, MAX_NAME_SZ, stdin);
}
int ValidateFileName(char * fileName)
{
printf(fileName);
if ((strcmp(fileName, "File 1") == 0) || (strcmp(fileName, "File 2") == 0) ||
(strcmp(fileName, "File 3") == 0) || (strcmp(fileName, "File 4") == 0) ||
(strcmp(fileName, "File 5") == 0))
return 0;
else
return 1;
}
答案 0 :(得分:0)
您正在将“文件1”与“文件1 \ n”进行比较。将strcmp调用更改为strncmp调用,如下所示:(strncmp(fileName, "File 1", strlen("File 1")) == 0)