【发布时间】:2018-12-15 07:41:03
【问题描述】:
时隔近 10 年,我开始编写 C 代码。我正在教我姐姐,但不幸的是,我在 Ubuntu 上遇到了一个非常基本的 scanf() 函数,用于一个简单的兴趣程序。
我的程序没有给出任何编译错误,但它没有在屏幕上显示任何内容
代码如下:
#include <stdio.h>
int main()
{
int p,n;
float r,si;
printf("enter values of p,n,r");
scanf("%d %d %f",&p,&n,&r);
si = p*n*r/100;
printf("%f" , si);
return 0;
}
【问题讨论】:
-
“scanf ... 不工作”是什么意思?你从不检查返回值,那你怎么知道它不起作用?
-
它对我有用!输入以空格分隔的值,而不是逗号
-
您可能看不到输出,因为它与下一个 shell 提示符位于同一行。在末尾添加换行符:
printf("%f\n", si) -
几个答案建议打印换行符或在第一次
printf调用后调用fflush(stdout)。这当然是个好主意,但是在我的 Ubuntu 系统上,当我从 shell 提示符运行程序时,程序在没有它的情况下运行;提示打印正确。并且打印了答案,但没有换行符,因此下一个 shell 提示符出现在同一行。当您说它“不显示任何内容”时,您的意思是“输入值...”提示没有出现吗?你究竟是如何运行程序的? -
明确:是否出现“输入值”提示?如果是这样,那么您“它没有在屏幕上显示任何内容”的说法是不正确的。如果没有,那么您在程序到达
scanf之前就遇到了问题,因此您不应该认为scanf是问题所在。