C 从键盘输入数据 scanf

之前我们经常用的printf 可以输出多种类型的数据,现在介绍另外两个
一个是puts 输出字符串,putchar 输出单个字符
例子

putchar('z');
putchar(10);

既然有输出,那也应该有输入。 在C语言中,使用scanf 从键盘中获取用户的输入数据。
scanf 其实是 scan format的缩写。
我们看一个简单例子

#include 

int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("a-b=%d\n", (a-b));
    return 0;
}

运行结果:

100 20  ↙
100-20=80

从键盘输入 100,空格,再输入 20,然后回车(↙表示回车),就会看到两个数相减的结果。
它们都有格式控制字符串,都有变量列表。但是,scanf 的变量前要带一个&符号;&称为取地址符,用于获取变量在内存中的地址。

getchar
如果只是接受单个字符,可以选择使用getchar.
例子

#include 
int main()
{
    char a, b, c;

    a=getchar();
    printf("a='%c'\n", a);

    b=getchar();
    printf("b='%c'\n", b);

    c=getchar();
    printf("c='%c'\n", c);

    return 0;
}

运行结果:

XYZ↙
a='X'
b='Y'
c='Z'

或者这样输入的结果:

X↙
a='X'
b='
'
Y↙
c='Y'

第二次之所以是这样的结果,是因为 getchar 也带有缓冲区。输入 X 并回车,第一个 getchar 读取到 'X',接着第二个 getchar 读取到回车换行符,到第三个 getchar,缓冲区中已经没有数据,所以会等待用户输入。

你可能感兴趣的:(C 从键盘输入数据 scanf)