C语言scanf函数详解:格式化输入利器

scanf 函数是C语言标准库中的一个重要函数,用于从标准输入(通常是键盘)读取数据,并根据指定的格式字符串将数据解析为不同类型的值,存储到指定的变量中。

函数原型

int scanf(const char *format, ...);
  • format:格式字符串,用于指定输入数据的格式以及如何将数据解析为不同类型的值。
  • ...:可变参数列表,表示可以接受任意数量的参数,这些参数通常是指向变量的指针,用于存储读取到的数据。

格式字符串

格式字符串是 scanf 函数的核心,它由以下内容组成:

  • 格式指示符: 以 % 符号开头,后跟一个或多个字符,用于指定数据的类型和格式。
  • 普通字符: 除格式指示符以外的字符,这些字符必须与输入数据完全匹配。

常用格式指示符

| 格式指示符 | 数据类型 | 说明 | |---|---|---| | %d | 整数 | 读取十进制整数 | | %i | 整数 | 读取十进制、八进制或十六进制整数 | | %u | 无符号整数 | 读取无符号十进制整数 | | %o | 无符号整数 | 读取八进制整数 | | %x%X | 无符号整数 | 读取十六进制整数 | | %f%lf | 浮点数 | 读取浮点数 | | %c | 字符 | 读取单个字符 | | %s | 字符串 | 读取字符串,遇到空格或换行符停止 |

使用示例

#include <stdio.h>

int main() {
  int num;
  float f;
  char ch;
  char str[20];

  printf('请输入一个整数:');
  scanf('%d', &num);  // 读取输入的整数,并将其赋值给 num 变量

  printf('请输入一个浮点数:');
  scanf('%f', &f);  // 读取输入的浮点数,并将其赋值给 f 变量

  printf('请输入一个字符:');
  scanf(' %c', &ch);  // 读取输入的字符,并将其赋值给 ch 变量,注意空格

  printf('请输入一个字符串:');
  scanf('%s', str);  // 读取输入的字符串,并将其赋值给 str 变量

  printf('您输入的整数是:%d
', num);
  printf('您输入的浮点数是:%f
', f);
  printf('您输入的字符是:%c
', ch);
  printf('您输入的字符串是:%s
', str);

  return 0;
}

注意事项

  • 使用 scanf 函数读取数据时,需要传入变量的地址(使用 & 符号),以便将读取到的数据存储到变量中。
  • 使用 %c 格式指示符读取字符时,建议在格式字符串前加一个空格,如 ' %c',这样可以跳过前面的空白字符(如空格、换行符等),读取有效的字符。
  • 使用 %s 格式指示符读取字符串时,遇到空格或换行符会停止读取,如果要读取包含空格的字符串,可以使用 fgets 函数。
  • scanf 函数的返回值为成功读取并赋值的参数个数,如果成功读取了所有参数,则返回成功读取的参数个数,否则返回负数表示读取失败,可以使用返回值判断输入是否合法。

希望本文能够帮助您更好地理解和使用 scanf 函数,轻松完成C语言中的格式化输入操作。

C语言scanf函数详解:格式化输入利器

原文地址: https://www.cveoy.top/t/topic/bpF1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录