使用while循环在C中进行数据验证 #包括 main() { 字符状态; printf(“状态符号\n”); printf(“----\n”); printf(“高级s\n”); printf(“Junior j\n”); 而(1) { printf(“请输入销售人员的状态:”); scanf(“%c”、&status); 如果(状态=='s'| |状态=='j') { 如果(状态=='s') { printf(“周薪为--$400\n”); 打破 } 其他的 { printf(“周薪为--275美元”); 打破 } } 其他的 { printf(“请输入有效的符号!\n”); } } }
输入无效数据时,此程序必须向用户请求有效数据。While循环用于验证数据,执行两次,以请求用户输入。为什么一开始就忽略scanf函数?如何解决这个问题 因为当您键入使用while循环在C中进行数据验证 #包括 main() { 字符状态; printf(“状态符号\n”); printf(“----\n”); printf(“高级s\n”); printf(“Junior j\n”); 而(1) { printf(“请输入销售人员的状态:”); scanf(“%c”、&status); 如果(状态=='s'| |状态=='j') { 如果(状态=='s') { printf(“周薪为--$400\n”); 打破 } 其他的 { printf(“周薪为--275美元”); 打破 } } 其他的 { printf(“请输入有效的符号!\n”); } } },c,validation,C,Validation,输入无效数据时,此程序必须向用户请求有效数据。While循环用于验证数据,执行两次,以请求用户输入。为什么一开始就忽略scanf函数?如何解决这个问题 因为当您键入a时,您键入了2个字符。 因此,第一次扫描得到a,第二次扫描得到\n(回车) 您可以将scanf更改为2个字符,而不是1个字符 #include<stdio.h> main() { char status; printf("STATUS SYMBOL\n"); printf("------
a
时,您键入了2个字符。
因此,第一次扫描得到a
,第二次扫描得到\n
(回车)
您可以将scanf更改为2个字符,而不是1个字符
#include<stdio.h>
main()
{
char status;
printf("STATUS SYMBOL\n");
printf("------ ------\n");
printf("Senior s\n");
printf("Junior j\n");
while(1)
{
printf("Please Enter the Salesperson's Status : ");
scanf("%c",&status);
if (status=='s' || status=='j')
{
if(status=='s')
{
printf("Weekly Salary is --- $400\n");
break;
}
else
{
printf("Weekly Salary is --- $275\n");
break;
}
}
else
{
printf("Please Enter a Valid Symbol!\n");
}
}
}
scanf(“%c”、&status)代码>==>scanf(“%c”,状态)(&status)
注意添加的空格。使用%c”
跳过状态字符前的空格。第二个调用是读取字符后的换行符。始终检查scanf
和其他可能遇到与程序执行相关的错误条件的函数的结果。甚至scanf(“%c%*c”,&status)代码>
scanf("%c%c", &status, &newline);