美文网首页
scanf函数学习

scanf函数学习

作者: 排骨炖豆角不要豆角 | 来源:发表于2018-03-20 10:08 被阅读0次

scanf()函数是格式化读入屏幕的数据,该函数包含在头文件stdio.h中,一般形式为:
scanf("格式控制字符串", 地址列表);
其中地址列表就是使用 & 符号来提取变量在计算机中存储的位置id,在转而输入给scanf中的变量。

单个变量的输入

#include <stdio.h>
void main(void)
{
  int i_num=0;    /* 提前定义一个int变量,以便于后面的使用,否则会报错 */
  printf("\nPlz enter a number: \n");
  scanf("%d", &i_num);   /* &符号表示提取变量的存储位置id */
  printf("\nHaha, I have got the number %d\n",i_num);
}
使用上面的程序,输出为:

Plz enter a number: 
10

Haha, I have got the number 10

多个变量的输入

当输入多个变量时,可以使用下面的程序简单的达到目的:

#include <stdio.h>
void main(void)
{
  int a=0,b=0,c=0;
  printf("\nPlz enter a number: \n");
  scanf("%d%d%d", &a,&b,&c);   /* 注意这个里面三个%d格式化之间不存在任何的符号 */
  printf("\nHaha, I have got the number %d,%d,%d\n",a,b,c);
}

上面的函数中,可以使用如下的格式输入都是没有问题的:

  • 方法1---中间隔一个空格连续输入
Plz enter a number: 
12 15 13

Haha, I have got the number 12,15,13
  • 方法2---全部使用enter键进行输入多个变量
Plz enter a number: 
12
12
15

Haha, I have got the number 12,12,15
  • 方法3---使用空格和enter键混合的方法进行输入
Plz enter a number: 
15                 48                            
49

Haha, I have got the number 15,48,49
  • notes:这说明当使用%d%d....连续输入变量的格式的时候,使用空格还是enter进行输入变量都是无所谓的,都可以使程序运行起来。

变量中间带有符号

#include <stdio.h>
void main(void)
{
  int a,b;
  printf("\nPlz enter a number: \n");
  scanf("%d,%d", &a,&b);   /* 注意是这个位置%d,%d之间存在一个逗号 */
  printf("\nHaha, I have got the number %d,%d\n",a,b);
}

那么上面的程序就是以逗号为分界的,结果如下:

Plz enter a number: 
1234,5
Haha, I have got the number 1234,5

如果是%3d,%3d这种情况,输入如下:

Plz enter a number: 
1234,5

Haha, I have got the number 123,0

可见,必须是第一个数字少于三位数才能接收到两个变量的值,否则,第二个数字为0、

特殊的,当scanf函数里面是 cui=%3d,feng=%3d 这样的时候,必须将前面的cui 和 feng也都要带上,否则是不会得到正确输入的:

#include <stdio.h>
void main(void)
{
  int a,b;
  printf("\nPlz enter a number: \n");
  scanf("cui=%3d,feng=%3d", &a,&b);   /* 注意这个语句的不同之处 */
  printf("\nHaha, I have got the number %d,%d\n",a,b);
}

输入的几种情况和结果如下:
方法1

Plz enter a number: 
123,456
Haha, I have got the number 0,0

方法2

Plz enter a number: 
cui=123
Haha, I have got the number 123,0

方法3

Plz enter a number: 
cui=123,feng=456
Haha, I have got the number 123,456

综合以上方面可以发现,方法3里面的方式是正确的,这样才能得到正确的输入的两个变量的值。

  • notes:本节中,需要接收字符串为输入的步骤仍然是存在错误的,出现了core dump现象。仍然是不知道这个原因。

相关文章

  • 【C语言笔记】<三>Scanf函数

    Scanf函数介绍 scanf函数是一个阻塞式函数:程序会停在Scanf函数出现的地方,直到接收到的数据才会执行后...

  • scanf函数学习

    scanf()函数是格式化读入屏幕的数据,该函数包含在头文件stdio.h中,一般形式为:scanf("格式控制字...

  • 2019-01-05学习一下C呀

    问题1:vs2017中scanf函数报错ANSI C中没有scanf_s(),只有scanf(),scanf()在...

  • C语言中的scanf与scanf_s 以及循环输入的问题解决

    Scanf 在标准C中,scanf提供了键盘输入功能。 scanf函数是一个标准库函数,它的函数原型在头文件“st...

  • 自学编程日记

    至少学习了编程中的几个词汇。 主函数:main 格式输出函数:printf 格式输入函数:scanf 文件包含命令...

  • scanf函数

    scanf函数在接收字符串时就是这么安排的——遇到空格或回车就认为前面的输入已经完成且有效!

  • scanf函数

    scanf函数 一、是什么? C语言下的scanf()函数是样式化输入函数,也称为阻塞式函数,有C语言自带的库提供...

  • scanf函数

    一,使用目的在程序运行的时候,能让用户输入进而操作 二,特点阻塞线程,在sacnf函数完成之后,才能执行下面的代码...

  • scanf函数

    必须用&告诉scanf函数变量的详细地址,才能存储用户输入的数据 利用scanf接收多个数据的时候,输入的内容要求...

  • scanf函数

    正面是一个混合输入字符和数字的程序: getchar()读取所有字符,包括空白、制表符、换行符。scanf()读取...

网友评论

      本文标题:scanf函数学习

      本文链接:https://www.haomeiwen.com/subject/gihvqftx.html