cin输入未完全用C ++读取

时间:2014-06-03 22:42:58

标签: c++

我正在学习使用Lippman等人的第五版编写的C ++程序。我必须运行此代码:

#include <iostream>
#include "Sales_item.h"
int main()
{

    int book;
    {
        std::cin>>book;
        std::cout<<book<<std::endl;
    }
    return 0;
}

int book声明是我自己的。我不确定,但我创建了一个名为&#34; Sales_item&#34;的头文件。在项目内。这本书没有说什么。弹出头文件,其中包含下一个代码:

#ifndef SALES_ITEM_H_INCLUDED
#define SALES_ITEM_H_INCLUDED



#endif // SALES_ITEM_H_INCLUDED

该项目的目标是输入ISBN,其价格和销售的书籍数量,输出应显示该ISBN的总收入。但是,当我输入数据时,它只会在输出中写入9位数字。

我不假装你为我解决了一切。我非常感谢任何帮助,一些书籍推荐等等。

我应该自己修改头文件吗?

1 个答案:

答案 0 :(得分:0)

int可以容纳的值的限制。在32位架构中,int只能保存-2147483648到2147483647之间的值。

你说它“仅”输出9位,显然你试图存储的数字太大而无法存储在int中。

尝试使用int64_t或将此序列号作为std::string处理。

int64_t可以保存-9223372036854775808至9223372036854775807的值,并且应该足以存储ISBN的13位数字。