Code前端首页关于Code前端联系我们

C++ scanf()函数:输入格式化输出

terry 2年前 (2023-10-01) 阅读数 146 #c++
文章标签 phpmysql

一、scanf函数的返回值

scanf函数是C和C++中常用的输入函数,它可以快速读取控制台或文件中的数据。在使用scanf函数时,有一个非常重要的概念——返回值。scanf函数的返回值是成功匹配并赋值的输入项的个数。因此,如果输入的数据类型与格式化字符串不匹配,scanf函数将会失败。

#include <cstdio>

int main(){
  int a,b;
  printf("请输入两个整数:\n");
  int num = scanf("%d%d",&a,&b);
  printf("成功匹配并赋值的输入项个数:%d\n",num);
  return 0;
}

例如,在上面的代码中,如果我们输入了"3.14 abc",那么scanf函数将会失败,并输出0。

二、scanf函数的格式化字符串

scanf函数的格式化字符串决定了需要输入的数据的类型和格式。下面介绍一些常用的格式化字符串:

  • %d 整数
  • %f 浮点数
  • %c 字符
  • %s 字符串
  • %x 十六进制整数

在使用格式化字符串时,可以通过限定符指定变量的长度和类型。例如,%5d表示输入长度不超过5的整数。

#include <cstdio>

int main(){
  int a;
  printf("请输入一个长度不超过5的整数:\n");
  scanf("%5d",&a);
  printf("你输入的整数是:%d",a);
  return 0;
}

在上述代码中,%5d指示scanf函数读取长度不超过5的整数。如果我们输入了"123456",那么scanf函数只会读取前5个字符。

三、scanf函数的其他用法

scanf函数还可以进行常规的输入操作。例如,使用scanf("%c",&x)来读取一个字符,使用scanf("%s",&str)来读取一个字符串(不包含空格和换行符)。

除此之外,scanf函数还可以使用*号来跳过输入或赋值。例如,使用scanf("%*d",&a)可以读取一个整数,但是不将其赋值给变量a。

#include <cstdio>

int main(){
  char c;
  printf("请输入一个任意字符:\n");
  scanf("%c",&c);
  printf("你输入的字符是:%c\n",c);
  scanf("%*d");//跳过一个整数输入
  char str[20];
  printf("请输入一个字符串:\n");
  scanf("%s",str);
  printf("你输入的字符串是:%s",str);
  return 0;
}

在上述代码中,我们使用scanf函数读取了一个字符和一个字符串,并跳过了一个整数的输入。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门