C++std::cout没有向控制台写入任何内容
C++ std::cout not writing anything to the console
请原谅我的愚蠢,因为我才刚刚开始学习C++,但我遇到了一些让我困惑的东西。下面的代码是我在这里找到的C++Primer第5版PDF中的示例。
#include<iostream>
int main(){
int sum = 0, value = 0;
while (std::cin >> value)
sum += value;
std::cout << "Sum is: " << sum << std::endl; //this doesn't do anything
std::cin.ignore().get();
return 0;
}
现在,由于某种原因,最后一个std::cout
语句根本没有任何作用,这让我感到困惑,因为除了std::cin.ignore().get()
之外,它与pdf中的示例完全相同,但它没有任何作用。最让我困惑的是,如果我从while循环内部编写value
,你可以观察到它不会无限重复;它在最后一个输入值之后停止,所以错误不应该出现在while循环的执行中。
感谢您的帮助!
编辑:我正在使用Visual Studio 2013 Ultimate
编辑2:我使用的输入是3 4 5 6
第3版:为了进行比较,以下是C++Primer第5版的代码:
#include <iostream>
int main()
{
int sum = 0, value = 0;
// read until end-of-file, calculating a running total of all values read
while (std::cin >> value)
sum += value; // equivalent to sum = sum + value
std::cout << "Sum is: " << sum << std::endl; return 0;
}
因此,我的ONLY与此之间的差异是std::cin.ignore().get()
。
while (std::cin >> value)
意味着它在读取整数失败之前不会停止,即遇到EOF
或非整数输入。
在Windows上,使用^Z(CtrlZ)输入EOF
。
尝试输入:
1 2 3 4
^Z
它应该击中底线。关于cin.ignore()
的东西,这是一个完全不同的问题。
相关文章:
- 如何从Windows控制台调用.exe(C++)以在不同的目录(或任何目录)中创建文件夹?
- cout 不打印任何内容到控制台
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- std::任何只用于移动的模板,其中副本ctor内的static_assert等于编译错误,但为什么
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- "... already defined in *.obj"但我没有在同一范围内两次定义任何变量
- C++ 中是否有任何内置阶乘函数?
- 使用 C++ shell 为 C++ 中的 2 D 动态数组赋值,控制台不会打印出任何内容
- 如何在C++中接收任何类型的函数参数并获取函数内传递变量的类型?
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 我需要在C /C#中使用图形.我可以使用任何内置的C /C#库
- 是否有任何内置类可以处理C 中的大整数值
- c ++中是否有任何内置功能可以在计划的时间运行任务
- 是否有任何内置的 UTF 在 c++ 在窗口中
- 在VC++2010中执行任何内置的ARRAY函数
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 我如何在常数时间(O(1))内获得字母表(1-26)中字符的数值/位置,而不使用任何内置方法或函数
- C++中的任何内置哈希方法
- c++库中的任何内置夹子方法