scanf报错
#include<stdio.h>int main()
{
printf("please input first character:");
char ch, c1, c2;
scanf_s("%c", &ch);
switch (ch)
{
case 'm':
case 'M':printf("Monday\n"); break;
case 'w':
case 'W':printf("Wednesday\n"); break;
case 'f':
case 'F':printf("Friday\n"); break;
case 't':
case 'T':scanf_s("%c", &c1);
switch (c1)
{
case 'h':printf("Thursday\n"); break;
case 'u':printf("Tuesday\n"); break;
default:printf("illegal input!\n"); break;
}
case 's':
case 'S':sacnf_s("%c", &c2);
switch (c2)
{
case 'a':printf("Saturday\n"); break;
case 'u':printf("Sunday\n"); break;
default:printf("illegal input!\n"); break;
}
default:printf("illegal input!\n"); break;
}
return 0;
}
报错:没有为格式字符串传递足够的参数,占位符和其参数预计 2 可变参数,但提供的却是 1 参数,缺失的可变参数 2 为格式字符串“%c”所需 问题出在第34行和第40行的代码中。在这两行中,您使用了 sacnf_s 而不是 scanf_s 。这是一个拼写错误,应该使用 scanf_s 函数。
sacnf_s 应该被替换为 scanf_s ,以便正确读取输入字符并将其存储在相应的变量中。修复后的代码如下:
#include<stdio.h>
int main()
{
printf("please input first character:");
char ch, c1, c2;
scanf_s("%c", &ch);
switch (ch)
{
case 'm':
case 'M':printf("Monday\n"); break;
case 'w':
case 'W':printf("Wednesday\n"); break;
case 'f':
case 'F':printf("Friday\n"); break;
case 't':
case 'T':scanf_s("%c", &c1);
switch (c1)
{
case 'h':printf("Thursday\n"); break;
case 'u':printf("Tuesday\n"); break;
default:printf("illegal input!\n"); break;
}
break;
case 's':
case 'S':scanf_s("%c", &c2);
switch (c2)
{
case 'a':printf("Saturday\n"); break;
case 'u':printf("Sunday\n"); break;
default:printf("illegal input!\n"); break;
}
break;
default:printf("illegal input!\n"); break;
}
return 0;
}
修复后的代码将正确读取输入字符并输出相应的结果。 scanf_s报错解决方案
在代码中,当我们使用scanf_s函数时,需要注意到该函数需要传入两个参数:要读取的格式字符串以及对应的变量地址。
在上述代码中,有两处出现了错误的scanf_s函数调用,分别是:
scanf_s("%c", &c1);
sacnf_s("%c", &c2);
这两处调用都缺失了一个必要的参数,即格式字符串"%c"所需的第二个参数。正确的调用方式应该是:
scanf_s("%c", &c1, 1);
scanf_s("%c", &c2, 1);
在这里,第三个参数1表示要读取的字符数,因为我们只需要读取一个字符,所以值为1。
修改后的完整代码如下:
#include <stdio.h>
int main() {
printf("please input first character:");
char ch, c1, c2;
scanf_s("%c", &ch, 1);
switch (ch) {
case 'm':
case 'M':
printf("Monday\n");
break;
case 'w':
case 'W':
printf("Wednesday\n");
break;
case 'f':
case 'F':
printf("Friday\n");
break;
case 't':
case 'T':
scanf_s("%c", &c1, 1);
switch (c1) {
case 'h':
printf("Thursday\n");
break;
case 'u':
printf("Tuesday\n");
break;
default:
printf("illegal input!\n");
break;
}
break;
case 's':
case 'S':
scanf_s("%c", &c2, 1);
switch (c2) {
case 'a':
printf("Saturday\n");
break;
case 'u':
printf("Sunday\n");
break;
default:
printf("illegal input!\n");
break;
}
break;
default:
printf("illegal input!\n");
break;
}
return 0;
}
希望以上内容能够解决你的问题。如果还有其他疑问,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页:
[1]