📅  最后修改于: 2023-12-03 15:37:18.608000             🧑  作者: Mango
在 C++ 中,输出数据是我们调试程序的必不可少的一项技能。本文将介绍 C++ 中常见的输出方法和技巧。
std::cout
是 C++ 中输出数据最常用的方式,它属于 iostream
库,因此需要使用 #include <iostream>
进行头文件引用。下面是一个例子:
#include <iostream>
using namespace std;
int main() {
int x = 123;
string str = "hello";
cout << x << endl;
cout << str << endl;
return 0;
}
在上面的例子中,我们定义了一个整型变量 x
和一个字符串变量 str
。使用 std::cout
输出它们的值,并使用 endl
强制换行。
输出结果为:
123
hello
在输出数据时,我们可能需要自己定义输出格式。使用格式化输出可以方便地实现这一功能。C++ 标准库中提供了两个格式化输出工具:
printf
: 原来的 C 语言输出工具,由 stdio.h
头文件提供。std::cout
: C++ 标准库中的输出工具,通过 iomanip
头文件提供的格式修饰符实现格式化输出。使用 printf
输出数据需要引入 stdio.h
头文件,并使用以下语法:
printf(格式字符串, 参数1, 参数2, …);
下面是一个例子:
#include <stdio.h>
int main() {
int x = 123;
float y = 3.14;
printf("x = %d, y = %f\n", x, y);
return 0;
}
输出结果为:
x = 123, y = 3.140000
在格式字符串中,%d
表示输出整数,%f
表示输出浮点数。参数列表中的参数个数和类型应该与格式字符串匹配。
使用 std::cout
输出数据需要引入 iomanip
头文件,并使用以下语法:
std::cout << std::setiosflags(标志1 | 标志2 | …) << 参数1 << std::resetiosflags(标志1 | 标志2 | …) << 参数2 << … << std::endl;
其中,std::setiosflags
用于设置输出标志,std::resetiosflags
用于清除输出标志。下面是一个例子:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int x = 123;
float y = 3.14;
cout << setiosflags(ios::fixed) << setprecision(2) << "x = " << x << ", y = " << y << endl;
return 0;
}
输出结果为:
x = 123, y = 3.14
这里使用了 ios::fixed
和 setprecision
标志,前者表示按照固定小数位输出,后者表示输出小数点后两位。
在输出数据时,需要注意以下事项:
std::cout
,否则会输出变量的地址。%p
输出其地址,但需要显式转换为 (void*)
类型。