小码过海 2023-05-19 19:32 采纳率: 85.7%
浏览 69
已结题

c语言的输入输出问题

如何才能让每一次的输入与输出在同一行?
示例:
(输入)1 2(输出)3

1 2     3
1 10   13
1 3     4
  • 写回答

2条回答 默认 最新

  • 关注

    不要用流输入, 用即时性输入函数
    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);
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 创建了问题 5月19日

悬赏问题

  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题