在释放模式下,cout 不打印任何内容
On release mode cout does not print anything
我有一个非常奇怪的问题。我正在C++中使用 Visual Studio,突然 cout 在发布模式下不起作用(它直到现在才有效)和调试模式它工作正常。我不知道为什么这是幸福的。我试图删除一些代码,我删除了几乎所有的程序(我有备份)。这是我的代码:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow )
{
AllocConsole();
cout<<"asdasd"<<endl;
cin.get();
return 1;
}
在调试模式下,程序等待用户按 Enter 键。在发布模式下,它不会。窗户刚刚关闭。
我认为这可能是视觉设置的问题。可以吗?
iostreams需要初始化,这通常由控制台应用程序的启动代码执行 - 但由于您使用WinMain
而不是main
作为入口点,因此它被链接为Windows模式应用程序而不是控制台模式应用程序,因此初始化不会发生(无论如何,可靠)。在某些(定义不明确)的情况下,事情无论如何都会起作用,但它充其量是不可靠的。
除非你觉得自己很受虐狂,以至于你愿意做很多额外的工作来让你的代码不可移植,否则请以标准方式编写代码:
#include <iostream>
int main() {
std::cout<<"asdasdn";
std::cin.get();
return 1;
}
简短、简单、可靠都是好东西。便携也不错。
相关文章:
- 打印时有二叉树问题.用户输入不打印任何内容
- main() 中的 std::cout 在调试期间不会在调试控制台中打印任何内容
- cout 不打印任何内容到控制台
- 为什么字符串没有更新并且最终没有打印任何内容
- 我如何处理 TMP 以避免打印任何东西
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 泛型函数反向打印任何矢量,编译器出错
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- Cout 一个字符串可以打印任何内容到屏幕上
- "cout<<count<<endl;"没有打印任何内容
- C++ 中是否有任何内置阶乘函数?
- 为什么循环迭代不打印任何东西?
- 函数不打印任何 c++
- 下面的代码没有打印任何东西
- 我的 c++ 程序中的字符数组不会打印任何内容
- 如果否则错误:如何使其打印任何数字
- 在 C++ 中声明向量后无法打印任何内容
- 在模板功能中打印任何结构
- 如果找不到解决方案,我如何留下递归循环,而不会打印任何东西
- 是否有任何内置函数可以告诉编译器分支是否可预测