提问人:Gyanaranjan Behera 提问时间:10/25/2023 最后编辑:Ted LyngmoGyanaranjan Behera 更新时间:10/25/2023 访问量:79
C语言中程序中scanf()和printf()的功能机制[复制]
functioning mechanism of scanf() and printf() inside the programme in C [duplicate]
问:
我曾经使用 scanf() 和 printf() 编写 c 编程,并且在我更改它们内部的编写格式并试图了解我编写的编程输出的原因时遇到了一些问题。我已经写了下面我写的代码,并写了我在该程序下的每个程序中遇到的问题。尝试回答每个问题并解释它......
#include<stdio.h>
int main() {
int a;
float b;
scanf("%d", &a);
scanf("%f", &b);
printf("a is %d\n", a);
printf("b is %f\n", b);
return 0;
}
对于此代码,输出正常
但对于以下代码:-
#include<stdio.h>
int main() {
int a;
float b;
scanf("%d");
scanf("%f");
printf("a is %d\n", a);
printf("b is %f\n", b);
return 0;
}
如上所述,代码说输入中的整数值,当我们在输入中给出任何整数值时,然后在输入值后,程序结束,第二个和不执行。如果我输入任何其他类型的数据,例如,如果我输入任何字符作为第一个输入,然后在输入值后执行,并且 A 和 B 打印有垃圾值,但不会调用。scanf()
scanf()
printf()
scanf()
printf()
scanf()
#include<stdio.h>
int main() {
int a;
float b;
scanf("%d");
scanf("%f");
printf("a is %d\n", a);
printf("b is %f\n", b);
return 0;
}
对于这段代码,我遇到了与我在第二个代码中遇到的问题相同的问题。
#include<stdio.h>
int main() {
int a;
float b;
scanf("%d");
scanf("%f");
printf("a is %d\n");
printf("b is %f\n");
return 0;
}
但是在此代码中,所有 和 都执行了,我们在输入中输入适当的值作为每个值的需要,但是如果我们输入另一种数据类型的任何不同值,例如如果我们在输入中输入任何字符并按回车键,程序将以调用所有并打印 a 和 b 的垃圾值结束。如果我们输入字符作为第一个的输入,那么程序将从第一个结束,所有都被调用,但第二个不被调用。scanf()
printf()
scanf()
scanf()
printf()
scanf()
scanf()
printf()
scanf()
#include<stdio.h>
int main() {
int a;
float b;
scanf("%d",&a);
scanf("%f");
printf("a is %d\n",a);
printf("b is %f\n",b);
return 0;
}
all 和 在上述代码的输出中被调用。
如果我们输入合适的值作为输入,那么所有值都将被执行,但 A 和 B 的输出将打印出垃圾值,但是如果我们输入一个合适的值作为第一个值的输入,并且如果我们输入任何不同的值,例如如果我们输入任何字符作为第二个输入,那么只有 A 打印用户输入的实际值,而 B 打印垃圾值。scanf()
printf()
scanf()
scanf()
scanf()
答:
scanf("%d");
scanf("%f");
不传递必需的参数会调用未定义的行为 UB。任何事情都可能发生,关于程序为什么以特定方式运行的考虑是没有意义的。
评论
scanf
scanf()