C 语言的输入输出函数 scanf() 和 printf()
scanf & printf
C 语言入门的第一堂课讲的就是输出 Hello, world!
字符串,使用 printf()
输出到黑框框(命令行)里。后面讲 IO 的时候又提到了 scanf()
从黑框框中获取输入的内容。
基本的用法如下:
int n;
scanf("%d", &n);
printf("你输入的数为:%d\n", n);
这是一个格式化的输入输出函数,字符串内的 %d
表示整型,常用的类型还有 %s
表示字符串,%f
表示浮点型。&n
表示传入变量 n 的地址,意思是接受到的值将会放在 n 变量的位置。
输入和输出多个参数:
int i,j,k;
scanf("%d%d%d",&i,&j,&k);
printf("你输入的三个数是:%d,%d,%d\n",i,j,k);
多个参数输入可以用空格来实现间隔输入,这一点是比较方便的。但如果输入的是一段话呢,中文还好,英文单词之间要有空格进行分离,这要怎么处理呢?
gets & puts
gets(s)
读取一行的内容放到变量 s 中(缓存区),直到终止符或 EOF;puts(s)
输出变量 s 和一个换行符到标准输出终端。
[notice]本文中涉及的输入输出都是标准输入输出,stdin、stdout,命令行黑框框那种,与文件内容输入输出无关。[/notice]
基本用法如下:
char str[100];
printf( "请输入一个字符串:");
gets( str );
printf( "\n你输入的是: ");
puts( str );
这里面定义了一个字符数组,通过字符数组可以接受并存储字符串。C 语言本身是没有字符串类型的,主要实现方式就是字符数组和字符指针。字符数组长度比字符串长度大 1,因为字符数组会额外存储一个末尾字符 '\0'
,表示字符串结尾。
char str[20] = {'H','e','l','l','o',',','J','a','s','o','n','!','\0'};
char str[20] = "Hello, Jason!";
一般会采用第二种赋值方法,比较方便。注意,第一种写法是直接数组初始化,最后的结尾符号 \0
,可有可无,因为在输出字符串时会默认加上的。
尝试过遍历输出字符数组的内容,发现单个字符输出时,发现存储的值为整型,属于该字符的 ASCII 码对应十进制值。
getchar & putchar
输入和输出一个字符,感觉可能在选择操作的时候,如 yes(y) or no(n) 的时候起作用。
基本用法如下:
printf( "请输入一个值:");
c = getchar( );
printf( "\n你输入的是: ");
putchar( c );
getchar()
也是获取存储的是该字符的 ASCLL 码十进制值。