格式 :scanf("<格式化字符串>",<地址表>);
scanf有多种接收类型,%d、%c、%s三种类型,%d是用来输入整形数据的%c是用来输出单个字符的%s是用来输入字符串的,在%c中可以单个输入空格和回车、制表符Tab,而在%s中就不可以,在%s中空格和回车代表字符串结束的标志。
#include输出结果int main() { char a, b, c; scanf("%c%c%c", &a, &b, &c);//%c可以输入空格 printf("%c%c%c",a,b,c); return 0;
———————————————————————————————————————
#include输出结果 (2)printf 格式化输出(和scanf是一样的) 二、getchar和putchar (1) getcharint main() { char s[10]; scanf("%s", &s);//%s以空格为结束标志 printf("%s", s); return 0; }
格式 :getchar();或ch=getchar;
getchar是用来接收单个字符的,也是可以输入空格和回车、制表符Tab的和scanf("%c",&ch)是相同的
int main()
{
char ch[3];
int i = 0;
for (i = 0; i < 3; i++)
{
ch[i] = getchar();//输入空格
}
for (i = 0; i < 3; i++)
{
putchar(ch[i]);
}
return 0;
}
输出结果
(2)putchar
格式 :putchar(ch);
putchar是用来输出单个字符的,也是可以输出空格和回车、制表符Tab,当ch是整形时,输出的是与其相对应的ASCII码值
#include输出结果 三、gets和puts (1) getsint main() { int b = 97; char d = 'a'; putchar(b); putchar('n'); putchar(d); return 0; }
格式 :gets(ch);
gets()是用来输入字符串的并且能输入空格,制表符Tab但是不能输入回车,可接受回车键之前输入的所有字符,并用’ ’替代 ‘n’.回车键不会留在输入缓冲区中
#include输出结果 (2)putsint main() { char a[10]; gets(a);//输入空格 puts(a); return 0; }
格式 puts(ch);
puts()用来输出字符串,并且自动输出换行与printf("n");是相同的
printf可以格式化字符串,而puts()不行
#includescanf和gets缓冲区问题int main() { char a[10] = { "abc" }; char b[10] = { "a"}; char c[10] = { "abc abc" }; puts(a); puts(b);//输出字符串,空格,自动换行 puts(c); return 0; }
scanf在输入一段字符串回车后,会将回车保留在缓冲区中
而gets会将’n’换成’ ’
#include输出结果int main() { char s[10]; char a; scanf("%s", &s); printf("%sn", s); a= getchar(); putchar(a); return 0; }
箭头的位置就是输出的回车
最后:文章有什么不对的地方或者有什么更好的写法欢迎大家指出来。



