1.4 cpp编程基础
返回目录 1 面向对象技术
上一节 1.3 面向对象设计
下一节 1.5 结构体和类
HelloWorld
废话不多说,敲代码的第一步,当然是HelloWorld。
源代码
/* helloWorld.cpp,用C++写HelloWorld */
#include <iostream>
int main()
{
std::cout << "Hello" << std::ends << "World!" << std::endl; // 输出语句
return 0;
}
源文件命名为HelloWorld.cpp。
编译
你可以使用IDE自动编译,或者使用命令行手动编译(我是在Windows环境)。
- 我先使用vscode编写程序,在vscode中使用g++编译源文件;
-
然后我使用命令行编译。
- 首先需要安装MinGW,并且配置环境变量;
- 在win10的cmd中,使用
cd /d 源文件目录
命令定位到源文件目录; -
使用
g++ HelloWorld.cpp -o HelloWorld
命令对HelloWorld.cpp源文件进行编译,并将编译完成的可执行文件重命名为HelloWorld.exe;-
g++ 源文件名.cpp
可以用来编译,编译完成的可执行文件名为a.exe; - 上一条命令后面接
-o HelloWorld
用来将编译的a.exe重命名为HelloWorld.exe。
-
运行
- 在命令行中输入
HelloWorld
直接运行HelloWorld.exe。
编译运行结果:
Hello World!
解释
如你所见,只需包含iostream头文件,就可以使用:
- std::cout函数进行输出。
- std::ends表示字符串的结束,并且添加空格。
- std::endl终止一行,刷新缓冲区,并且添加换行。
要输出的内容跟在<<后面即可,不必像C语言的printf()一般,要补充格式控制符。
同时,使用cout,同样可以使用转义字符,如n。
在C++中,std其实就是standard——标准的意思。这里涉及到一个命名空间的问题。
namespace即“命名空间”,也称“名称空间” 、”名字空间”。这是一种代码组织的形式,通过名称空间来分类,区别不同的代码功能,同时也是所有类的完全名称的一部分。
std::cout的意思就是std这个命名空间中的cout函数。
简单的输入输出
输入输出是我们接触编程这一门技术的入门小菜,接下来我们用一个简单的加法函数来展示C++的简单输入输出。
源代码
/* io.cpp,C++输入输出实例:输入两个整数输出其和 */
#include <iostream>
int addNum(int num_1, int num_2)
{
return num_1 + num_2; // 返回传入两个变量之和的值
}
int main()
{
int num_1, num_2;
std::cout << "请输入两个整数用来求和:\n"; // 输出提示语句
std::cin >> num_1 >> num_2; // 输入两个整型变量
std::cout << num_1 << " + " << num_2 << " = " << addNum(num_1, num_2); // 调用求和函数,得到两个整数的和并输出
return 0;
}
编译运行
- 输出
请输入两个整数用来求和:
; - 输入
1 1
; - 输出
1 + 1 = 2
。
很简单。std::cin表示输入,上面也讲了,std::cout表示输出。
同样的,cin不需要格式控制符,直接对标变量的数据类型进行赋值。
写函数和调用函数和C语言几乎一致。
循环和递归
-
for循环
源代码
/* for.cpp,for循环实例,用循环算顺序累加和 */ #include <iostream> int main() { int sum = 0, min_num, max_num; // 存储累加的结果、最小值和最大值 std::cout << "请输入最小值:" << std::endl; std::cin >> min_num; std::cout << "请输入最大值:" << std::endl; std::cin >> max_num; for (int i = min_num; i <= max_num; ++i) { sum += i; // 循环累加 } std::cout << "从" << min_num << "加到" << max_num << "的和为:" << sum << std::endl; // 输出累加和 return 0; }
C++的for循环与C相比没什么区别,不同的是在for()里面的第一项可以定义新变量。如果采用g++编译C程序,也是可以的。
#### 编译运行
>> 请输入最小值: << 1 >> 请输入最大值: << 100 >> 从1加到100的和为:5050
-
while循环
源代码
/* while.cpp,while循环实例,多个数字的和 */ #include <iostream> int main() { int num = 0, sum = 0; std::cout << "你可以对任意个数的整数求和,请输入任意个数的整数,最后输入EOF结束(Windows环境键盘快捷键为Ctrl+Z):" << std::endl; while (std::cin >> num) // 遇到EOF退出while循环 { sum += num; // 相加 } std::cout << "你输入的数字总和为:" << sum << std::endl; // 输出和 return 0; }
c++的while()中可以直接用std::cin作为条件,只有输入EOF时,退出循环。
编译运行
>> 你可以对任意个数的整数求和,请输入任意个数的整数,最后输入EOF结束(Windows环境键盘快捷键为Ctrl+Z): << 1 << 23 << 456 << 7890 << ^Z >> 你输入的数字总和为:8370
-
do ... while循环
源代码
/* dowhile.cpp do ... while实例 */ #include <iostream> int main() { int sum = 0; do { sum++; std::cout << "程序已经执行了" << sum << "次!按回车继续执行下一次!按其它键后回车退出!"; } while (getchar()=='\n'); return 0; }
do ... while和while差不多,只是do ... while要先执行一次以后,再看while的条件。
编译运行
程序已经执行了1次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了2次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了3次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了4次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了5次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了6次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了7次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了8次!按回车继续执行下一次!按其它键后回车退出! 程序已经执行了9次!按回车继续执行下一次!按其它键后回车退出!233
-
递归
源代码
/* recursion.cpp 递归实例 */ #include <iostream> int ChristianKramp(int num) // 这个函数是求阶乘的 { if (num > 0) { if (num == 1) { return 1; } else { return num * ChristianKramp(num - 1); } } else { return -1; } } int main() { std::cout << ChristianKramp(5); // 输出5的阶乘 return 0; }
这是一个简单的递归实例,效果是求阶乘
编译运行
>> 120
返回目录 1 面向对象技术
上一节 1.3 面向对象设计
下一节 1.5 结构体和类
参考资料:
- 《C++程序设计》传智播客
- 百度百科
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。