📜  C++ scanf(1)

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

C++ scanf介绍

C++中的scanf函数用于从标准输入流(通常是键盘)读取格式化数据。该函数在C语言中也存在,并且用法非常相似。scanf函数最常用于读取用户输入的数据并将其存储在变量中。

语法
scanf("格式化字符串", &变量1, &变量2, ...);
  • 格式化字符串:用于描述输入数据的格式。它由百分号(%)和转换字符组成。具体的转换字符表示不同的数据类型。
  • 变量1, 变量2, ...:要赋值的变量。
转换字符列表

转换字符|数据类型 -|- %d|有符号十进制整数 %u|无符号十进制整数 %o|八进制整数 %x, %X|十六进制整数 %f|浮点数 %e, %E|科学计数法表示的浮点数 %g, %G|根据数值不同自动选择%f或%e %c|字符 %s|字符串 %p|指针类型

示例

下面是一些scanf函数的使用示例:

  • 读取整数:
int a;
scanf("%d", &a);
  • 读取浮点数:
float f;
scanf("%f", &f);
  • 读取字符串:
char s[100];
scanf("%s", s);
  • 读取多个值:
int a, b;
scanf("%d %d", &a, &b);
注意事项
  • scanf函数会根据格式化字符串中的数据类型,将输入流中的数据转换为对应的数据类型。如果输入的数据类型与格式化字符串中的数据类型不匹配,可能会导致程序出错。
  • 如果在输入字符串时指定了字符串长度,应该确保没有越界。否则,可能会导致程序崩溃。
  • 切记输入时不要输入格式化字符串中的任何字符。这些字符只是用于指导scanf函数如何读取数据。
  • 如果scanf读取分隔符,如空格、制表符、回车等,则会将读取器留下。之后的空格可能被读取器读入,导致下一个scanf错误。可以使用getchar()函数吃掉留下的分隔符。
总结

C++中的scanf函数是一个非常有用的函数,可以帮助我们读取标准输入流中的数据,并将它们存储到变量中。我们可以使用格式化字符串来指导scanf函数读取不同类型的数据。在使用scanf函数时,需要注意数据类型匹配,字符串长度和输入的分隔符等问题。