David_548 2024-03-20 00:16 采纳率: 0%
浏览 10

同样的代码在vs和vc上输出结果不一样是为什么呢

img

img


输入的是1234,然后回车
vs就只显示134,vc和其他的编译器就显示1234,用vs单独输出一个b会

img

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-20 00:16
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述:输入1234,部分编译器只会显示134。 解决方案:问题出在输入时使用了getchar()或cin.get()函数,这两个函数会将回车符也读入,导致输出时出现异常。可以使用以下方法解决:
    1. 在读入数据时使用cin或scanf函数,这些函数不会将回车符读入。 例子:
    #include <iostream>
    using namespace std;
    int main() {
        int a;
        cin >> a; // 使用cin读取输入数据
        cout << a << endl; // 正常输出
        return 0;
    }
    
    1. 在读入数据后,使用cin.ignore()或fflush(stdin)函数将回车符清空。 例子:
    #include <iostream>
    using namespace std;
    int main() {
        int a;
        cin >> a; // 使用cin读取输入数据
        cin.ignore(); // 清空回车符
        cout << a << endl; // 正常输出
        return 0;
    }
    

    注意:fflush(stdin)在C++标准中并没有定义,不过在Windows系统中常常可以使用。 3. 使用getline函数读取整行数据,再将字符串转换为数字。 例子:

    #include <iostream>
    #include <string>
    using namespace std;
    int main() {
        string str;
        getline(cin, str); // 使用getline读取整行数据
        int a = stoi(str); // 将字符串转换为数字
        cout << a << endl; // 正常输出
        return 0;
    }
    

    这三种方法都可以解决输入时回车符的问题,具体使用哪种方法可以根据自己的喜好和实际情况选择。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日

悬赏问题

  • ¥15 openFOAM DPMFoam
  • ¥15 将查询到的值,赋值到table指定行中
  • ¥50 docker容器内部启动shell脚本多命令
  • ¥15 请问python的selenium怎么设置referer
  • ¥15 请教下, VS QT 环境下, QTOPCUA 的源文件报错,这种情况咋查呢 ?
  • ¥20 UNITY webgl关于文档的上传和下载问题
  • ¥15 安霸cv22 + rtl8211f 千兆,udp传输丢包
  • ¥15 关于区块链和边缘环境搭建的相关问题
  • ¥15 windows远程桌面断卡重连软件卡顿问题
  • ¥30 Unity 实现扫描效果