如何才能让每一次的输入与输出在同一行?
示例:
(输入)1 2(输出)3
1 2 3
1 10 13
1 3 4
不要用流输入, 用即时性输入函数
windows
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
char chrArr[32];
int main()
{
int i = 0;
while ((chrArr[i] = getch()) && (chrArr[i] != '\r'))
{
++i;
}
char *num;
int lhs = strtol(chrArr, &num, 10);
int rhs = atoi(num);
printf("%d %d %d", lhs, rhs, lhs + rhs);
}
linux
#include <stdio.h>
#include <stdlib.h>
#include <termio.h>
#include <stdbool.h>
int getch(void)
{
return getchar();
}
void setio(bool bl)
{
static struct termios tm, tm_old;
if (bl)
{
tcgetattr(0, &tm);
tm_old = tm;
cfmakeraw(&tm); // 更改终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理
tcsetattr(0, TCSANOW, &tm);
}
else
{
tcsetattr(0, TCSANOW, &tm_old);
}
}
char chrArr[32];
int main()
{
setio(true);
int i = 0;
while ((chrArr[i] = getch()) && (chrArr[i] != '\r'))
{
++i;
}
setio(false);
char *num;
int lhs = strtol(chrArr, &num, 10);
int rhs = atoi(num);
printf("%d %d %d\n", lhs, rhs, lhs + rhs);
}