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));