最近我正在学C++,学到了指针和数组,学完了也该做点练习,我呢也在研究习题的答案,偶然发现那个书上的源码有问题,无法按照预期显示,虽然编译器不报错
书上源码大概也就长这样

代码内容

#include<iostream>
using namespace std;
struct Pizza
{
    char company[20];
    float weight;
    float cm;
};

int main()
{
    Pizza* pizzza = new Pizza;
    cout << "Enter Pizza weight: ";
    cin >> pizzza->weight;
    cout << endl;
    cout << "Enter Pizza long: ";
    cin >> pizzza->cm;
    cout << endl;
    cout << "EnterPiza company: ";
    cin.getline(pizzza->company, 20);
    cout << endl << endl;
    cout << "Pizza company " << pizzza->company << endl << "Pizza long " << pizzza->cm << endl << "Pizza weight " << pizzza->weight;
    delete pizzza;
    return 0;
}


如果你把这个代码拿去编译后运行,是会出现问题的
代码出问题了

2021-08-08.png


就是要输入字符串的那块,居然跳过了
我也思考了很久,发现把输入字符串与第一个输入数字的那条互换,就没问题了,都能输入了。
那么,我发现,应该是那个浮点数不知道咋回事要么多了空格要么多了个回车,正好那个字符串的也读了,跳过了。
目前,在这个代码的基础上,在那个输入字符串上一行,补充一个

cin.get();

目的是消耗那多余的玩意。
这回,就成功了。程序如期运行。

最后修改:2021 年 08 月 08 日 08 : 33 PM
如果觉得我的文章对你有用,请随意赞赏