如果我在我的程序中写了超过20个字符,它会遍历它并跳过我的if语句if(length> 20)。我做错了什么?
printf("\nEnter Your Product:");
fgets(item_name, 20, stdin);
length = strlen(item_name);
if(length > 20){
Errorlevel("Input Greater Than 20");
}
答案 0 :(得分:1)
您可以将fgets设置为最多收集20个字符。因此,if(length > 20)
总是错误的。
答案 1 :(得分:1)
fgets
会读取所请求的字符数 减去一个 。传递给fgets
函数的大小包括终结符。
所以无论你写了多少个字,长度都不会超过19个字符。
检查是否输入了多个字符的简单方法是查看最后一个字符(不是字符串终止符)是否是换行符。如果不是,则输入19个或更多字符作为输入。