【问题标题】:Console::WriteLine() vs. coutConsole::WriteLine() 与 cout
【发布时间】:2013-05-09 14:03:54
【问题描述】:

我刚刚开始尝试自学 C++(我已经成为 C# 程序员大约一年了),我一生都无法理解 Console::WriteLine("Hello World") 和 cout

【问题讨论】:

  • Console::WriteLine 不是 C++。它是 C++/CLI,或多或少是在 .NET 上运行的 C++。
  • 顺便说一下,coutostreamstdout 对象。 cinistreamstdin 对象。

标签: c++ c++-cli clr cout cin


【解决方案1】:

您正在使用 C++/CLI 而不仅仅是 C++。 C++/CLI 是一个 Microsoft 扩展,它允许您在 Windows 上编写 .NET 代码并允许您使用 .NET 库(CLR - 公共语言运行时)。

Console::WriteLine 是 .NET 库中的一个方法 - http://msdn.microsoft.com/en-us/library/kxcchfk6.aspx

当您在 Visual C++ 中创建项目时,它允许您创建 C++ 项目或 C++/CLI (CLR) 项目。 CLR 项目类型是您可以使用 .NET 东西的类型。如果您创建 Win32 项目或其他类型之一,它只是 C++。

如果您不是创建项目而只是从命令行编译,那么/clr 选项是用于 C++/CLI 的选项。

cout & ciniostream 对象。相应的类有运算符 <<>> 重载 - 因此您可以使用 cout<< 进行输出并使用 cin>> 进行输入。

这个Q & A 可以更好地理解为什么设计使用<<>>

【讨论】:

  • 感谢大家的回答,但真正让我困惑的是 Console::WriteLine 和 cout
  • @EhrenPatel Console::WriteLine 是 .NET 库的一部分。 .NET 库可用于 C#、VB# 等。这些语言没有 cout
  • C++ 是否有任何标准函数可以向控制台写入一行,即自动在输入末尾放置一个endl
  • @KyleDelaney - puts
  • @user93353 谢谢,我不知道。但是有没有一种不仅仅适用于字符串?
【解决方案2】:

不同之处在于std::cout 是标准的,因此可以在任何平台上的任何C++ 编译器中使用,而Console 是Microsoft 特定的扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 2016-01-11
    相关资源
    最近更新 更多