共计 3078 个字符,预计需要花费 8 分钟才能阅读完成。
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++ 程序设计》传智播客
- 百度百科