通过一个简答的C++程序,对代码进行解释以及习题整理。
通过一个程序来实现将一段信息送至用户的终端。内容是:首先,要求用户输入自己的名字;其次,程序读取用户输入的名字;然后,将名字存储起来便于后续操作;最后,输出该信息,以指名道姓的方式输出。
例:hello,Nike!This is the first demo!
代码已上传至自己github,供参考: github
1、代码
#include <iostream> //头文件 iostream表示标准的“输入/输出库”
#include <string> //头文件 包含string类 下面定义了一个user_name对象
using namespace std;
//int 是C++程序语言的关键词 int用来表示语言内置的整数数据类型
//main() 不是关键字,执行C++程序时,会假设程序中定义有main()函数。没有该函数,程序无法执行。
//括号内可传入参数,参数列表用来表示:函数执行时,调用者可以传给函数的类型列表
int main()
{
//定义一个string对象
string user_name;
//利用定义好的cout对象,将信息写到用户终端中,即打印对应内容。
//output运算符(<<)将数据定向到cout
cout << "please input your name:";
//利用定义好的cin对象来读取用户终端上输入的内容,输入运行符(>>)将输入内容定向到某个对象上,此处为user_name
cin >> user_name;
//输出对应内容
cout << "\nhello," << user_name <<"!" << "This is the first demo!\n";
//return是C++中的关键字,0位返回值,main()返回0表示程序执行成功
return 0;
}
2、结果
这里对using namespace std
做个详细介绍。
using和namepace都是C++的关键词。std是标准库所驻之命名空间namespace的名称。标准库所提供的任何事物(比如string类、cout、cin等)都被封装在命名空间std中。
命名空间(namespace)是一种将库名称封装起来的方法。通过这种方法可以避免和应用程序发生命名冲突的问题(比如某命名空间std1中有apple对象和std中也有apple对象)。
若要在程序中使用string class以及cin 、cout这两个iostream类对象,我们不仅需要包含和头文件,还要让命名空间std内的名称曝光,即using namespace std
。
若不加using namespace std
,程序则会报错,但是也有一种解决方法,详看练习2。
3、练习题
习题1: 自行编译执行上述程序。
习题2: 将头文件依次注释掉会发生什么?这里演示一下注释 using namespace std
。
替代方法
#include <iostream> //头文件 iostream表示标准的“输入/输出库”
#include <string> //头文件 包含string类 下面定义了一个user_name对象
//using namespace std;
//int 是C++程序语言的关键词 int用来表示语言内置的整数数据类型
//main() 不是关键字,执行C++程序时,会假设程序中定义有main()函数。没有该函数,程序无法执行。
//括号内可传入参数,参数列表用来表示:函数执行时,调用者可以传给函数的类型列表
int main()
{
//定义一个string对象
std::string user_name;
//利用定义好的cout对象,将信息写到用户终端中,即打印对应内容。
//output运算符(<<)将数据定向到cout
std::cout << "please input your name:";
//利用定义好的cin对象来读取用户终端上输入的内容,输入运行符(>>)将输入内容定向到某个对象上,此处为user_name
std::cin >> user_name;
//输出对应内容
std::cout << "\nhello," << user_name <<"!" << "This is the first demo!\n";
//return是C++中的关键字,0位返回值,main()返回0表示程序执行成功
return 0;
}
习题3: 将函数名main()改为my_main(),能否编译成功?
不能,程序从main()开始执行。
习题4: 扩充该程序。(1)要求用户输入名字first_name和姓氏last_name,(2)修改输出结果,同时打印姓氏和名字。
参考代码
#include <iostream>
#include <string>
using namespace std;
int main()
{
string first_name;
string last_name;
cout << "please input your first name:";
cin >> first_name;
cout << "please input your last name:";
cin >> last_name;
std::cout << "\nhello," << first_name << last_name <<"!" << "This is the second demo!\n";
return 0;
}
结果