【C++学习第八讲】编译/执行 C++ 程序

一、实例

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

输出的结果为:

Hello, world!

D:\C++CodeProject\Project1\x64\Debug\Project1.exe (进程 90104)已退出,代码为 0。
按任意键关闭此窗口. . .

你可以用 "\n" 代替以上代码里的 endl

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << "\n";
    return 0;
}

输出结果相同!

二、C++中 “\n” 与 endl 的区别是什么?

“\n” 表示内容为一个回车符的字符串。std::endl 是流操作子,输出的作用和输出 “\n” 类似,但可能略有区别。

std::endl 输出一个换行符,并立即刷新缓冲区。

例如:

std::cout << std::endl;

相当于:

std::cout << '\n' << std::flush;
或者
std::cout << '\n'; std::fflush(stdout);

由于流操作符 << 的重载,对于 ‘\n’ 和 “\n”,输出效果相同。

对于有输出缓冲的流(例如cout、clog),如果不手动进行缓冲区刷新操作,将在缓冲区满后自动刷新输出。不过对于 cout 来说(相对于文件输出流等),缓冲一般体现得并不明显。但是必要情况下使用 endl 代替 ‘\n’ 一般是个好习惯。

对于无缓冲的流(例如标准错误输出流cerr),刷新是不必要的,可以直接使用 ‘\n’。

三、学习笔记

在 C++ 中,分别使用.h 和.cpp 来定义一个类。

.h 中存放类的声明,函数原型(放在类的声明中)。

.cpp 存放函数体。

也就是说,一个存放声明(declaration),一个存放定义(definition)。

如果我们在一个头文件里声明了一个函数,当我们需要定义这个函数(这个定义是唯一的,也就是只能定义一次),或者需要使用这个函数时,我们在 cpp 中需要 include 这个头文件。

同样地,如果我们在一个头文件里声明了一个类,当我们需要定义类里的成员函数,或者我们需要使用这个类时,我们在 cpp 中需要 include 这个头文件。

<> 先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h 等用这个方法。

" " 首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于 include 自定义的头文件,让系统优先使用当前目录中定义的。

“\n” 表示一个字符串,只有一个数据是回车符。

‘\n’ 表示一个字符。

这两个在输出上是一样的!

如果想显示多行文本,如下:

#include <iostream>
using namespace std;
int main()
{
    cout<<"...............\n"
        <<"Hello, world!\n"
    <<"Welcome to c++\n"
        <<"...............\n";
    return 0;
}

输出结果为:

...............
Hello, world!
Welcome to c++
...............

D:\C++CodeProject\Project1\x64\Debug\Project1.exe (进程 83728)已退出,代码为 0。
按任意键关闭此窗口. . .

不用一直这样 cout 多行插入。

真正的开发过程中, 尽量避免使用 using namespace std; 等直接引入整个命名空间,否则会因为命名空间污染导致很多不必要的问题, 比如自己写的某个函数,名称正好和 std 中的一样, 编译器会不知道使用哪一个, 引起编译报错, 建议使用:

std::cout << "Hello World" << std::endl;

cout 流速度较慢,如果速度过慢可以用 <stdio.h> 库中的 printf() 格式化输出函数,不需要 using namespace std;。

它的格式为:

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    printf("hello world!");
    return 0;
}

输出结果为:

hello world!
D:\C++CodeProject\Project1\x64\Debug\Project1.exe (进程 83496)已退出,代码为 0。
按任意键关闭此窗口. . .

注意:printf() 中不能使用 endl!

:: 在 C++ 中表示作用域,和所属关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值