手捧星光945 2022-03-28 22:26 采纳率: 85%
浏览 29
已结题

cin类成员函数及缓冲区的一些问题

img

img

源代码目标实现多个字符存储动态数组,并循环依次让用户写入存储。

  • 写回答

2条回答 默认 最新

  • 关注

    cin.get()读取1个字符,你连续输入了多个字符,多输入的字符会一直保存在缓冲区内。
    please enter the maker:后面输入的时候,只能输入一个字符和一个回车,这样才能正常输入。你的car结构体中,produc也只是一个字符的大小。
    输入如下所示:

    img

    代码注释如下:

    #include <iostream>
    using namespace std;
    struct car
    {
        char produc;
        int year;
    };
    
    int main()
    {
        int a;
        std::cout <<"How many cars do you wish to catalog?";
        cin >> a;
        car* ca = new car[a];
        for (int i=0;i<a;i++)
        {
            cout <<"Car #"<<i+1<<":"<<endl;
            cout <<"Please enter the maker: "<<endl;
            cin.get(); //这里读取一个字符,用来吸收上一次输入的回车
            cin.get(ca[i].produc);
            cin.get(); //吸收回车符
            cout << ca[i].produc;
            cout <<"Please enter the year made:";
            cin >> ca[i].year;
        }
        for (int i=0;i<a;i++)
        {
            cout << ca[i].produc << ca[i].year;
        }
        delete[] ca;
        ca = 0;
        return 0;
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?