
生成可执行代码的过程:

#include <iostream>
int main() {
using namespace std;
cout << "Come up and C++ me some time.";
cout << endl;
cout << "You won't regret it!" << endl;
/* If the output window closes before you can read it,
* add the following code: */
// cout << "Press any key to continue." <<endl;
// cin.get();
return 0;
}
Come up and C++ me some time.
You won't regret it!
<iostream>没有.h后缀,该编译指令导致预处理器将iostream文件的内容添加到程序中,这是一种典型的预处理器操作:在源代码被编译之前,替换或添加文件。实际上,iostream文件的内容将取代程序中的代码行#include<iostream>。原始文件没有被修改,而是将源代码文件和iostream组合成一个复合文件,编译的下一阶段将使用该文件。
事实上,C++能够使用printf( )、scanf( )和其他所有标准C输入和输出函数,只需要包含常规C语言的stdio.h文件。不过这里介绍的是C++,所以将使用C++的输入工具,它们在C版本的基础上作了很多改进。
名称空间可以只针对特定的对象,如:
using std::cout; // make cout available
using std::endl; // make endl available
using std::cin; // make cin available
using namespace std; // lazy approach, all names available
双引号括起的部分是要打印的消息。在C++中,用双引号括起的一系列字符叫做字符串,因为它是由若干字符组合而成的。<<符号表示该语句将把这个字符串发送给cout;该符号指出了信息流动的路径。cout是什么呢?它是一个预定义的对象,知道如何显示字符串、数字和单个字符等(对象是类的特定实例,而类定义了数据的存储和使用方式)。cout将一个字符串插入到了输出流中。
控制符endl是一个特殊的C++符号,表示一个重要的概念:重起一行。在输出流中插入endl将导致屏幕光标移到下一行开头。
显示用引号括起的字符串时,通常使用换行符\n,在其他情况下则使用控制符endl。一个差别是,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);而使用“\n”不能提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示。
cout与老式C语言的区别在于cout的聪明程度。在C语言中,要打印字符串“25”和整数25,可以使用C语言的多功能输出函数printf( ):
printf("Printing a string:%s\n", "25");
printf("Printing a integer:%d\n", 25);
撇开printf( )的复杂性不说,必须用特殊代码(%s和%d)来指出是要打印字符串还是整数。如果让printf( )打印字符串,但又错误地提供了一个整数,由于printf( )不够精密,因此根本发现不了错误。它将继续处理,显示一堆乱码。
cout的智能行为源自C++的面向对象特性。实际上,C++插入运算符(<<)将根据其后的数据类型相应地调整其行为。
#include <iostream>
int main() {
using namespace std;
int carrots;
cout << "How many carrots do you have?" << endl;
cin >> carrots;
cout << "Here are two more. ";
carrots = carrots + 2;
// the next line concatenates output
cout << "Now you have " << carrots << " carrots." << endl;
// cin.get();
// cin.get();
return 0;
}
如果您发现在以前的程序清单中需要添加cin.get( ),则在这个程序清单中,需要添加两条cin.get( )语句,这样才能在屏幕上看到输出。第一条cin.get( )语句在您输入数字并按Enter键时读取输入,而第二条cin.get( )语句让程序暂停,直到您按Enter键。
How many carrots do you have?
|12
Here are two more. Now you have 14 carrots.
就像C++将输出看作是流出程序的字符流一样,它也将输入看作是流入程序的字符流。iostream文件将cin定义为一个表示这种流的对象。输出时,<<运算符将字符串插入到输出流中;输入时,cin使用>>运算符从输入流中抽取字符。通常,需要在运算符右侧提供一个变量,以接收抽取的信息(符号<<和>>被选择用来指示信息流的方向)。
与cout一样,cin也是一个智能对象。它可以将通过键盘输入的一系列字符(即输入)转换为接收信息的变量能够接受的形式。
对于main()函数:可以将计算机操作系统(如UNIX或Windows)看作调用程序。因此,main( )的返回值并不是返回给程序的其他部分,而是返回给操作系统。很多操作系统都可以使用程序的返回值。例如,UNIX外壳脚本和Windows命令行批处理文件都被设计成运行程序,并测试它们的返回值(通常叫做退出值)。通常的约定是,退出值为0则意味着程序运行成功,为非零则意味着存在问题。因此,如果C++程序无法打开文件,可以将它设计为返回一个非零值。然后,便可以设计一个外壳脚本或批处理文件来运行该程序,如果该程序发出指示失败的消息,则采取其他措施。
将编译指令using namespace std;放到main()函数外面,那它就是全局的,其他自定义函数也可以使用。
本文介绍了C++编程的基础知识,包括可执行代码的生成过程、预处理器操作、输入输出流的使用、面向对象特性以及main函数的返回值意义。通过实例展示了如何使用cout和cin进行字符串和数字的输入输出。
146

被折叠的 条评论
为什么被折叠?



