C语言中常用的输入输出函数
putchar/getchar
putchar()
功能:向终端输出一个字符
头文件:#include <stdio.h>
函数原型:int putchar(int c);
参数: c 用来保存要输出字符的ascii码的
#include <stdio.h>
int main(int argc, const char *argv[])
{
putchar(65);
putchar(10);
putchar('B');
putchar('\n');
int num = 67;
putchar(num);
putchar('\n');
putchar('A'+3);
putchar(10);
return 0;
}
getchar
功能:在终端获取一个字符
头文件:#include <stdio.h>
函数原型:int getchar(void);
返回值: 输入的字符
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
char value = 0;
value = getchar();
printf("您输入的字符是 [%d] [%c]\n", value, value);
#endif
char v1=0, v2=0, v3=0;
v1 = getchar();
getchar();
v2 = getchar();
getchar();
v3 = getchar();
getchar();
printf("v1 = [%d] [%c]\n", v1, v1);
printf("v2 = [%d] [%c]\n", v2, v2);
printf("v3 = [%d] [%c]\n", v3, v3);
return 0;
}
puts/gets
puts
功能:向终端输出一个字符串
头文件:#include <stdio.h>
函数原型:int puts(const char *s);
参数: s 要输出的字符串的首地址
#include <stdio.h>
int main(int argc, const char *argv[])
{
puts("hello");
char str[32] = "beijing";
puts(str);
char *p = "www.baidu.com";
puts(p);
puts("abcd\0efg");
return 0;
}
gets
功能:在终端获取一个字符串
头文件:#include <stdio.h>
函数原型:char *gets(char *s);
参数:s 用来保存输入的字符串的缓冲区的首地址
#include <stdio.h>
int main(int argc, const char *argv[])
{
char s1[32] = {0};
gets(s1);
puts(s1);
return 0;
}
printf/scanf
printf
功能:按照指定的格式,向终端输出一个字符串----格式化输出
头文件:#include <stdio.h>
函数原型:int printf(const char *format, ...);
参数:
format :格式
%c 输出字符
%d 输出整型,有符号
%u 输出整型,无符号
%o 输出八进制
%x 输出十六进制
%f 浮点型
%e 指数形式
%% 输出%
附加格式说明:
l (小写的L)输出 long 或者 long long 或者double时用的
# 输出前导符
.n 输出n位小数 n是一个数字
m m是一个数字,可以用来指定输出的数据的位宽
0 如果数据不足指定的位宽 则使用0填充
- 左对齐
+ 如果是正数 输出时显示正号 负数会忽略+
... : 可变参,个数和类型取决于format
#include <stdio.h>
int main(int argc, const char *argv[])
{
int hour = 10;
int min = 9;
int sec = 5;
printf("%d:%d:%d\n", hour, min, sec);
printf("%2d:%2d:%2d\n", hour, min, sec);
printf("%02d:%02d:%02d\n", hour, min, sec);
int value = 1234;
printf("%2d\n", value);
printf("%10d\n", value);
printf("%-10d\n", value);
printf("%+d\n", value);
value = -100;
printf("%+d\n", value);
return 0;
}
scanf
功能:按照指定的格式,在终端获取数据----格式化输入
头文件:#include <stdio.h>
函数原型:int scanf(const char *format, ...);
参数:
format :格式
和前面printf的用法基本一样。
注意:scanf的格式不能乱写,写成什么样的格式,输入就得按照什么格式输入
... : 可变参,个数和类型取决于format 如果是变量,记得要 &
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
int m = 0;
int n = 0;
scanf("%d%d", &m, &n);
printf("m = %d, n = %d\n", m, n);
scanf("%d:%d", &m, &n);
printf("m = %d, n = %d\n", m, n);
#endif
#if 0
char m;
scanf("%c", &m);
printf("%c\n", m);
#endif
#if 0
float m;
scanf("%f", &m);
printf("%f\n", m);
#endif
char str[32];
scanf("%[^\n]", str);
printf("%s\n", str);
return 0;
}
垃圾字符的处理
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
char a,b,c;
scanf("%c", &a);
getchar();
scanf("%c", &b);
getchar();
scanf("%c", &c);
printf("a = [%d] [%c]\n", a, a);
printf("b = [%d] [%c]\n", b, b);
printf("c = [%d] [%c]\n", c, c);
#endif
char a,b,c;
scanf("%c %c %c", &a, &b, &c);
printf("a = [%d] [%c]\n", a, a);
printf("b = [%d] [%c]\n", b, b);
printf("c = [%d] [%c]\n", c, c);
return 0;
}