为什么当我输入较大的数字时,我的程序会到达文件末尾?
Why does my program reach end of file when I input larger numbers?
int main()
{
int sum = 0, value = 0;
while (std::cin >> value)
sum += value;
std::cout << "Sum is: " << sum << std::endl;
return 0;
}
因此,此代码从用户那里获取值并添加它们。我不明白是什么让它到达文件末尾。我多次测试它,发现当我使用更大的数字 (9999999999( 时,它结束得更快,但当我只输入 1 秒时,它永远不会结束。
您遇到整数溢出。
更具体地说,std::istream
上的bool
运算符返回 false,因为流无法将大值读入int
。
Blake。问题是整数实际上只能这么大。常规int
的范围是 -32,767 到 32,767;long int
的范围是 -2,147,483,647 到 2,147,483,647,依此类推。我敢肯定网上有一个列表,您可以在其中找到不同的范围(我没有记住它们(。
无论如何,我相信你的问题是你的int sum
变得太大,它破坏了你的程序。此外,我建议有一种方法可以关闭您的while
循环,这样您的程序就不会永远持续下去;你可以这样做:if(value == -1) break;
祝你学习愉快!
相关文章:
- make 命令创建 .file,但不创建应用程序文件
- C++对象文件和程序文件组合编译的 Bashrc 别名
- 程序文件中的安装路径:一些问题
- 词频程序 - 文件输入太大?
- 使用带有 MEX 包装器的帮助程序 C 文件从 MATLAB 2016 调用C++代码时出现问题
- 如何修复"无法打开包含文件'boost/config.hpp':没有这样的文件或目录(包括目录涵盖:C:\程序文件\boost\boost_1_67_0)
- MacOS应用程序文件关联
- Visual Studio - C++ - 以 32 位或 64 位构建和运行应用程序 - 从适当的程序文件目录加载 D
- Windows 8 应用商店应用程序C++文件访问
- 检索C++程序/文件中使用的指针变量列表
- Visual Studio使用多线程DLL发布应用程序文件
- 为什么不将.cpp转换为c程序文件呢
- C++获取程序文件目录,附加额外路径并执行
- C++创建程序文件中文件的进程
- 在应用程序文件夹中安装 C/C++ 库"IGRAPH"
- 使用 Dev-C++ 5.2.0.2 进行调试 - 调试时找不到程序文件 gdb.exe
- 创建无需任何外部执行即可连续侦听的守护程序文件
- Qt单一应用程序文件已打开
- 问题.所有功能都可以在发布文件夹中工作,但不能在程序文件中工作
- 应用程序文件没有在不同的mac上运行