霜_哀 2023-09-06 17:35 采纳率: 0%
浏览 5

关于>>运算符的操作数问题

img


为什么>>运算符第二个操作数不能是double类型??关键是我自己随便加了一个double类型的变量是能过编译的,那这个到底是什么问题QAQ

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-06 20:53
    关注

    【以下回答由 GPT 生成】

    问题原因是C++中的>>运算符不支持直接将输入流(cin)的输入赋值给双精度(double)类型的变量。而你在代码中尝试使用的sa[i]是一个double类型的变量。

    解决这个问题的方法是,使用一个临时变量将输入流(cin)的输入赋值给该变量,然后再将该变量赋值给sa[i]。

    以下是修改后的代码示例:

    void set(Student& sa, int n)
    {
        cout << "Please enter the student's name: ";
        getline(cin, sa);
    
        cout << "Please enter quiz scores: ";
    
        for (int i = 0; i < n; i++)
        {
            double temp; // 临时变量
    
            cin >> temp; // 将输入流(cin)的输入赋值给临时变量
    
            sa[i] = temp; // 将临时变量赋值给sa[i]
        }
    
        while (cin.get() != 'n') continue;
    }
    

    这样修改后,你就可以将输入流(cin)的输入赋值给double类型的变量了,并且编译不会报错。希望对你有帮助!



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日