[英]How to compare and print the output of three exe files with the same input?
[英]How to print output on the same line as input?
如何在与输入相同的行上打印?
这是我的代码
#include <stdio.h>
int main() {
int number;
printf("Enter number: ");
scanf("%d", &number);
printf("You entered: %d",number);
return 0;
}
发生了什么:
Enter number: 23
You entered 23
我想要达到的目标:
Enter number: 23 , You entered 23
使用“标准”输入例程(在<stdio.h>
中定义的例程,例如scanf
和getchar
)将等到您在处理输入之前点击“Enter”键 - 并且“Enter”将作为换行符回显(无法避免)。
但是您可以使用getch()
function (在<conio.h>
中定义); 这不会回显您输入的键/字符,因此,当您按“Enter”时,控制台上不会“反映”换行符。 但是,您必须手动回显您键入的任何其他字符,并将它们保存到输入缓冲区; 然后,您可以使用sscanf
function 从该缓冲区中读取您的 integer。
这是一个简短的示例,可以满足您的要求:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char buffer[256] = ""; // Space for our input string
printf("Enter number: ");
int in;
while ((in = getch()) != '\r') { // Read until we see the "Enter" key ...
char out = (char)(in);
printf("%c", out); // We need to manually "echo" the input character...
buffer[strlen(buffer)] = out; // ... and add that to our input buffer
if (strlen(buffer) == 255) break; // Prevent buffer overflow!
}
int number;
sscanf(buffer, "%d", &number); // Read number from buffer ...
printf(" , You entered: %d", number); // ... and print it (on the same line)
return 0;
}
注意:您可以(应该)将更多错误检查添加到此代码中(例如检查scanf
的返回值以确保给出有效的 integer ); 但是,我所展示的内容“模拟”了您的原始代码,但没有回显换行符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.