如何开始学习mingwc++

How to get started learning MinGW C++?

本文关键字:学习 mingwc++ 开始 何开始      更新时间:2023-10-16

我正在用代码块学习c++,我想问你是否可以给我一些好的指示,我如何学习MinGW和Visual studio c++之间的区别,例如n<<并不总是像我期望的那样表现。我是一个完全的新手,只读了Jesse Liberty的旧书《21天自学c++》的第2天,程序是这样的:

#include <iostream>
using namespace std;
    int main()
    {
        cout << "Hello there."; endln;
        cout << "Here is 5: " << 5 << endl;
        cout << "The manipulator endln writes a new line to the screen";
        cout << "Here is a very big number:t" << 70000;
        cout << "Here is the sum of 8 and 5:t" << 8+5;
        cout << "Here is a fraction:tt" << (float) 5/8;
        cout << "And here is a very big number:t" << (double) 7000*7000;
        cout << "Remember to replace Niklas with you name";
        cout << "Hampus is a C++ programmer!";
        return 0;
    }

MinGW c++和GNU c++一样吗?有官方标准吗?对新手学习/教学的任何建议都将不胜感激。我正在读的书是《21天教你c++》,这是这本书的旧版本,但我可以修改从第一次练习开始运行的程序,我相信我可以使用这本书,因为自从它出版以来,可能没有对基本的c++做太多的改变(我拥有的这本书的版本可能是10年前的)。

谢谢!

在得到这里的推荐后,我买了《c++入门》这本书。

编译器必须强制执行(或应该强制执行:p)的唯一东西是用标准编写的。标准定义了行为,而不是实现,因此编译器可以有所不同。

首先,code::blocks不是编译器,它是人们通常使用MinGW编译器的环境。另一方面,Visual Studio是一个自带编译器的环境。

编译器之间的差异应该不关心你作为一个开始的c++程序员和文本编辑器或开发环境,你想要使用的是由你决定的,你可以在PSpad编程(写代码),然后你可以用上百万个不同的编译器编译它。

总而言之,有一个编译器必须(或应该)遵守的标准。编译器以他们喜欢的任何方式实现它,他们可能会添加一些额外的东西(如可变大小数组静态分配)。请注意,standard对这些扩展一无所知,因此没有定义它们的行为。

还有一种文本编辑器,你可以在里面写代码,然后用你喜欢的编译器编译。

c++不是一门容易学习的语言,除非你之前有低级(仍然是高级)编程语言的经验。特别是如果你还没有遇到指针和引用的话,还有很多事情要做。

我建议你买一本新书,甚至可能包含几个月前正式发布的c++0x/c++11标准的信息。

同样,不要在c++中使用(double)x这种类型转换,因为它实际上是c的类型转换方式。在此场景中使用static_cast < double > (x)

只是对" MinGW和Visual Studio c++的区别"的一个注释:

MinGW和Visual c++都带有标准的C/c++库和Windows API库。除此之外,MinGW包还包含许多POSIX C/c++库,例如direct .h或pthread.h,它们对于在Windows上编写跨平台控制台程序非常有用(我在Windows上开发模拟程序时就是这样做的,以便在SEE-GRID上运行)。

cout & lt; & lt;"你好。";endln;

你有一个错误(我假设)a;在行中间

& lt; & lt;操作符应该按照c++标准中的定义工作。这不是mingw和visual studio或任何其他编译器之间讨论的问题。

n对Windows和Linux环境有影响。在Linux中,每行都以一个n字符结束。在Windows中,它以LF(换行)和CR(回车)结束。例如, r n。这就是为什么linux文本文件在Windows上显示时看起来非常不同,反之亦然。

在任何情况下,差异与编译器无关,而是与不同操作系统上的行结束字符有关。

MinGW c++和GNU c++一样吗?

是的,MinGW基本上是用于Windows的GNU工具的发行版(MinGW = Minimalist GNU for Windows)。在其他编程语言的编译器中,它包含一个GNU c++编译器,这些编译器是GCC的一部分。

有官方标准吗?

c++作为一种语言有一个标准。然而,c++实现没有"标准"。当然,实现应该尽可能地遵循c++标准。c++标准的某些部分声明某些东西是"特定于实现的"——那么就取决于实现如何处理这种特殊情况。

你提到的关于"n"(换行字符)的问题纯粹是平台特定的。如果您只使用std::cout,那么"n"就可以工作,但是如果您使用print()或printf()或其他方式写入STDOUT,那么您需要小心您所做的事情。我从你的帖子中看到你使用Windows,其中新行是"rn"(回车+换行)。在大多数POSIX平台上,"n"是"行尾"字符,在Windows上是"rn"。在MacOS X上是"r",现在是"n"