📜  在 C++ 中打印数据的值(1)

📅  最后修改于: 2023-12-03 15:37:18.608000             🧑  作者: Mango

在 C++ 中打印数据的值

在 C++ 中,输出数据是我们调试程序的必不可少的一项技能。本文将介绍 C++ 中常见的输出方法和技巧。

使用 std::cout 输出数据

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 输出数据

使用 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 输出数据

使用 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::fixedsetprecision 标志,前者表示按照固定小数位输出,后者表示输出小数点后两位。

注意事项

在输出数据时,需要注意以下事项:

  1. 字符串类型变量输出时需要使用 std::cout,否则会输出变量的地址。
  2. 对于指针类型变量,可以使用 %p 输出其地址,但需要显式转换为 (void*) 类型。
  3. 建议一次只输出一个变量的值,以避免代码可读性问题。