C++如何使用printf和scanf_C++兼容C语言输入输出函数示例

C++中可使用C语言的printf和scanf函数进行输入输出,只需包含头文件。示例程序演示了通过scanf读取姓名、年龄和身高,并用printf格式化输出。关键格式符包括%d(整数)、%f(浮点数)、%.2f(保留两位小数)、%s(字符串)等。使用时需注意:scanf中除数组名外变量前要加&,字符串输入避免空格以防截断,建议限定长度如%49s防止缓冲区溢出。C++兼容C风格I/O,但处理含空格字符串时推荐cin.getline()。

在C++中可以使用C语言的输入输出函数printfscanf,因为C++兼容C语言的标准库。只要包含头文件,就可以直接调用这两个函数进行格式化输入输出。

包含头文件

#include 是使用 printfscanf 所必需的头文件。注意不是 (虽然也能用,但推荐使用C++风格)。

基本语法与示例

下面是一个完整的C++程序,演示如何使用 printf 输出信息,scanf 读取用户输入:

#include 
#include 
using namespace std;

int main() {
    int age;
    float height;
    char name[50];

    printf("请输入姓名、年龄和身高:\n");
    scanf("%s %d %f", name, &age, &height);

    printf("姓名:%s\n", name);
    printf("年龄:%d\n", age);
    printf("身高:%.2f\n", height);

    return 0;
}

常用格式控制符说明

理解格式字符串中的占位符是正确使用 printfscanf 的关键:

  • %d:整数(int)
  • %f浮点数(float 或 double)
  • %.2f:保留两位小数输出浮点数
  • %c:单个字符
  • %s:字符串(字符数组)
  • %%:输出百分号本身

注意事项

使用 scanf 时要特别注意以下几点:

  • 变量前要加 & 符号(除了字符数组名)
  • 输入字符串时不能包含空格,否则会被截断
  • 缓冲区溢出风险:建议用 %49s 限制输入长度,防止写入超出数组边界
  • scanf 遇到空白字符会停止读取,处理带空格的字符串可用 gets 或改用C++的 cin.getline()
基本上就这些。C++允许你混合使用C风格和C++风格的I/O,选择哪种取决于具体需求和编码习惯。