如何开始学习mingwc++
How to get started learning MinGW C++?
我正在用代码块学习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"
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 神经网络不学习.卡在50%
- 在学习数据结构之前对STL有一个了解是好的吗?
- 如何将经过训练的机器学习模型保存在python中并将其加载到C++中进行预测?
- 学习 c++,编译错误"no matching function for call"
- 学习数据结构和算法的简单方法
- 我正在尝试学习如何在 c++ 中传递指针,但出现错误:没有用于调用"test"的匹配函数。我做错了什么?
- 学习嵌套循环C++与示例混淆
- 从书本中学习C++无法使该程序与类一起工作
- 刚开始学习C++
- 学习C++并在早期示例中遇到错误(在非静态数据成员之前需要构造函数)
- 学习时空复杂性时语句XYZ的含义是什么?
- Q学习扫雷行为
- 我可以在没有C++的情况下学习 Win32 API(仅使用 C)吗?
- 学习C,我的编译器已经知道bool(Visual Studio 2017)
- 我正在学习C++,我不能使用指针访问参考吗?(举个例子)
- 试图学习指针,为什么要使用它们而不是仅仅使用&?
- Microsoft CNTK加强学习C 示例
- 如何开始学习mingwc++