C语言——输入输出与垃圾字符回收

一、按格式输入输出

1.printf

(1)介绍

#include <stdio.h>//头文件

int printf(const char *format, ...);

功能:按照格式向终端输出

参数:多参

返回值:输出类型的个数(一般不用)

(2)格式

%dint
%cchar
%ffloat
%lfdouble
%e指数形式
%s字符串
%p地址

%o

八进制
%#x十六进制

2.scanf

 #include <stdio.h>//头文件

int scanf(const char *format, ...);

功能:按照格式从终端输入

参数:多个

返回值:正确输入的个数

与printf不同的是,scanf需要取地址符来确认变量输入的地址:

int a = 0;
scanf("%d", &a);
printf("%d\n", a);

二、按字符输入输出

1.getchar

(1)介绍

int getchar(void);

功能:向终端输入一个字符

参数:无

返回值:输入字符的ASCII码值

(2)使用

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

2.putchar

(1)介绍

int putchar(int c);

功能:向终端输出一个字符

参数:输出字符的ASCII码值

返回值:输出字符的ASCII码值

(2)使用

int a = getchar();
putchar(a);
putchar('\n');

三、垃圾字符回收机制

        我们在输入的过程中,空格或回车常常使我们的输入过程受阻,因此需要一些方法将我们不想输入的字符作为垃圾回收:

1.通过空格回收一个或多个空格

#include <stdio.h>
int main(int argc, char const *argv[])
{
    char a, b;
    scanf("%c%c", &a, &b);
    printf("%c %c\n", a, b);
}

输入与输出结果:可以看到,我输入了W  空格  Q,而只输出了W和空格,因此空格已经影响了我们的输入。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    char a, b;
    scanf("%c %c", &a, &b);
    printf("%c %c\n", a, b);
}

输入与输出结果:,可以看到,输入空格已经不影响输出了,与上面代码不同的只是两个%c之间的空格。

即,在scanf函数中,在两个格式之间加一个空格可以回收一个或多个空格。

2.%*c回收任意一个字符

#include <stdio.h>
int main(int argc, char const *argv[])
{
    char a, b;
    scanf("%c%*c%c", &a, &b);
    printf("%c %c\n", a, b);
}

运行结果:

%*c不止可以回收空格,只要是字符在这个位置都可以回收。

3.getchar

一般是在循环中使用

#include <stdio.h>
int main(int argc, char const *argv[])
{
    while (1)
    {
        char a;
        scanf("%c", &a);
        printf("%c\n", a);
    }
}

执行结果:可以看到,a输入输出以后,又输出了两个空行,才执行的下一次程序,这是因为,我们输入时必须使用回车作为输入结束,而回车又被作为了输入字符放入外存区,执行完打印a后由于循环没结束而继续执行,但在下一轮执行时,会先识别暂存区,第一次换行相当于执行了一次scanf输入'\n',第二次换行相当于执行了打印'\n',所以b会在第三行接收,所以此空格为垃圾字符,在scanf后写上getchar(),识别缓存区的'\n'而不执行,因此可以回收。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    while (1)
    {
        char a;
        scanf("%c", &a);
        printf("%c\n", a);
        getchar();
    }
}

执行结果:

目录

一、按格式输入输出

1.printf

(1)介绍

(2)格式

2.scanf

二、按字符输入输出

1.getchar

(1)介绍

(2)使用

2.putchar

(1)介绍

(2)使用

三、垃圾字符回收机制

1.通过空格回收一个或多个空格

2.%*c回收任意一个字符

3.getchar


  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值