Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
printf()与scanf()位于同一行_C_Printf_Scanf - Fatal编程技术网

printf()与scanf()位于同一行

printf()与scanf()位于同一行,c,printf,scanf,C,Printf,Scanf,这是我到目前为止的代码: printf("Input:\t Radius:\tSurface Area:\t Circumference:\t Volume:\n\n"); scanf("%lg", &diameter); printf("%lg%lg\t\t%-12lg\t\t%-12lg\t\t%-12lg\n\n", diameter, calcRadius(diameter), calcSurfaceArea(diameter), calcCircumference(d

这是我到目前为止的代码:

printf("Input:\t   Radius:\tSurface Area:\t Circumference:\t    Volume:\n\n");
scanf("%lg", &diameter);
printf("%lg%lg\t\t%-12lg\t\t%-12lg\t\t%-12lg\n\n", diameter, calcRadius(diameter), calcSurfaceArea(diameter), calcCircumference(diameter), calcVolume(diameter));
我的输出如下所示:

Input:     Radius:      Surface Area:    Circumference:     Volume:

99
9949.5          30775.1                 310.86                  507790

Press any key to continue . . .
如何使输出显示为如下所示:

Input:     Radius:      Surface Area:    Circumference:     Volume:

  99      9949.5          30775.1       310.86             507790

Press any key to continue . . .
简而言之,我意识到在使用scanf()并按enter键后,printf()会自动打印到新行。我如何才能得到它,以便它将打印在用户键入数字的同一行上,即使在用户按enter键时也是如此


我应该使用不同的函数获取输入,还是完全不同的方法?

您可以使用termios库将STDIN设置为非规范和非回送模式,并开始自己回送字符,以便不打印换行符。此外,如果您想走这条路,您必须使用自己的scanf导入:


您需要查看库才能执行此类操作。

您知道scanf会做什么。对于您的程序,您可以删除printf()中的打印直径

printf("Input:\t   Radius:\tSurface Area:\t Circumference:\t    Volume:\n\n");
scanf("%lg", &diameter);
printf("\t%lg\t\t%-12lg\t\t%-12lg\t\t%-12lg\n\n", calcRadius(diameter), 
calcSurfaceArea(diameter), calcCircumference(diameter), calcVolume(diameter));