一丶按照格式的输入输出
1.输出:printf
格式:int printf(const char *format,....);
功能:按照指定的格式向终端输出
参数:format:要输出的字符串的内容 ....:不定参
数据类型 | int | char | float | double | 字符串 | 十六进制 | 八进制 | 地址 | 指数 | |
打印格式 | %d | %c | %f | %lf | %s | %#x | %#o | %p | %e |
返回值:输出字符的个数
#include<stdio.h>
int main(int argc, char const *argv[])
{
int a = printf("aaa");//a=3
printf("%d\n",a);
return 0;
}
2.输入:scanf
格式:int scanf(const char *format,......);
功能:按照指定格式向终端输入
参数:format:要输入的字符串的内容 ......:变量的地址
返回值:正确输入数据的个数,当输入数据都不正确或第一个开始数据不正确时返回0.
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a, b, c;
int ret = scanf("%d%d%d", &a, &b, &c);//当输入1 2 a时ret=2,当输入a 1 2时ret=0
printf("ret=%d\n", ret);
return 0;
}
二丶按照字符的输入输出
1.输入:getchar
格式:int getchar(void);
功能:从终端输入一个字符
参数:无
返回值:输入字符的ASCII码值
#include <stdio.h>
int main(int argc, char const *argv[])
{
int arr = getchar();
printf("%d", arr);//当输入a时输出a的ASCII码值97
// char arr = getchar();
//printf("%c",arr); 当输入a时输出a
return 0;
}
2.输出:putchar
格式:int putchar(int c);
功能:向终端输出一个字符
参数:输出字符的ASCII码值
返回值:输出字符的ASCII码值
#include<stdio.h>
int main(int argc, char const *argv[])
{
putchar(97);//a的ASCII码值
putchar('a');//字符a
return 0;
}
练习:通过putchar和getchar将小写字母转换为大写字母
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a = getchar(); // 输入一个小写字母
putchar(a - 32); // 通过ASCII码值将小写字母转换为大写字母
/*int a = getchar();//输入一个大写字母
putchar(a+32);//通过ASCII码值将小写字母转换为大写字母
printf("\n");*/
return 0;
}
三丶垃圾字符回收
1.%*c回收:只能回收一个字符
#include <stdio.h>
int main(int argc, char const *argv[])
{
char a, b;
scanf("%c%*c%c", &a, &b);//从终端输入a a时因为a后面有空格,所以b的值就会默认为被空格赋值,而加上%*c时,空格就会被回收
printf("%c %c\n", a, b);
return 0;
}
2.通过空格回收:可以回收多个字符
#include <stdio.h>
int main(int argc, char const *argv[])
{
char a, b;
scanf("%c %c", &a, &b); //它告诉scanf在读取a之后,需要跳过任何空白字符(包括空格、制表符、换行符等),直到遇到下一个非空白字符并将其读入b。这样,用户就必须在两个字符之间输入至少一个空格(或其他空白字符)来分隔它们。
printf("%c %c\n", a, b);
return 0;
}
3.通过getchar回收:只能回收一个字符,多用于循环语句中
#include <stdio.h>
int main(int argc, char const *argv[])
{
char a;
while(1)
{
scanf("%c",&a);
getchar();//在向终端输入一个字符后,回车运行,这时候字符会被输出,而回车就会被存入缓存区中,下一次循环就会将回车输出,而getchar就会将回车这一垃圾字符回收
printf("%c\n",a);
}
return 0;
}