我不明白为什么它不接受输入。它始终显示“输入无效”...帮助!
InvalidCsrfTokenException: Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
答案 0 :(得分:4)
因为fgets()
存储的值包含尾随'\n'
。
试试这个
int stop = 0;
while (stop == 0)
{
fgets(input, MAX, stdin);
printf("%s", input);
if (strcmp(input, "1\n") == 0)
add();
else if (strcmp(input, "2\n") == 0)
delete();
else if (strcmp(input, "3\n") == 0)
view();
else if (strcmp(input, "4\n") == 0)
stop = 1;
else
printf("Invalid Input!\n");
}
有效吗?
因此您需要将其从input
中删除或添加到比较字符串中。
答案 1 :(得分:2)
除了@iharob所说的,我建议使用strncmp
来检查你的输入。该功能允许您明确指定要比较的字符数。有关函数定义,请参阅here。
int stop = 0;
while (stop == 0)
{
fgets(input, MAX, stdin);
printf("%s", input);
if (strncmp(input, "1", 1) == 0)
add();
else if (strncmp(input, "2", 1) == 0)
delete();
else if (strncmp(input, "3", 1) == 0)
view();
else if (strncmp(input, "4", 1) == 0)
stop = 1;
else
printf("Invalid Input!\n");
}