目录
一、字符输入输出函数
1、getchar()
字符输入函数getchar
格式: getchar( )
功能:从键盘读一字符
返值:正常,返回读取的代码值;出错或结束键盘输入,返回-1 (ctrl + d)
例:
#include <stdio.h>
int main() {
int c;
printf("Enter a character:");
c = getchar();
printf("%c--%d->hex%x\n", c, c, c);
运行结果:
Enter a character:A
A--65->hex41
2、putchar()
C语言无I/O语句,I/O操作由函数实现
#include <stdio.h>
字符输出函数
格式: putchar( c )
参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:正常,为显示的代码值;
例:
#include <stdio.h>
int main() {
int c;
char a;
c=65; a='B';
putchar(c); putchar('\n'); putchar(a);
运行结果:
A
B
二、字符串输入输出函数
1、gets
字符串输入函数gets
格式: char * gets(char *s)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志。
举例如下
int main( )
{
char string[15];
printf(“Input a string:”);
gets(string);
printf(“%s\n”, string);
return 0;
}
2、puts
字符串输出函数puts
格式:int puts(const char *s)
功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以‘\0’结束
举例如下
#include <stdio.h>
int main( )
{
char string[80] = “How are you”;
puts(string);
return 0;
}
输入: How are you?
输出: How are you?
三、格式输入输出函数
1、格式输入
格式: scanf(“格式控制串”,地址表);
功能:按指定格式从键盘读入数据,存入地址表指定
存储单元中,并按回车键结束
返值:正常,返回输入数据个数
地址表:变量的地址,常用取地址运算符&
例 1
scanf(“%4d%2d%2d”,&yy,&mm,&dd);
若输入19991015 则yy为1999, mm为10, dd为15
例 2
scanf(“%2d%*3d%2d”,&a,&b); 若输入1234567 则a为12,b为67
说明:
用 “%c” 格式符时,空格和转义字符作为有效字符输入
例 3
scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则c1为a, c2为空格, c3为b
总结:
输入数据时,遇以下情况认为该数据结束:
遇空格、TAB、或回车
遇非法输入
遇宽度结束
2、格式输出
例: m.n
int a=1234;
float f=123.456;
char ch=‘a’;
printf(“%8d,%2d\n”,a,a);
printf(“%f,%8f,%8.1f,%.2f\n”,f,f,f,f);
printf(“%3c\n”,ch);
例:
static char a[]=“Hello,world!”
printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);
运行结果:
Hello,world!
Hello,world!
Hello
Hello
Hel
例: 0 、+
int a=1234;
float f=123.456;
printf(“%08d\n”,a);
printf(“%010.2f\n”,f);
printf(“%0+8d\n”,a);
printf(“%0+10.2f\n”,f);
四、输入函数的垃圾处理
1、整形和字符型同时输入时
使用输入函数可能会留下垃圾
int x; char ch;
scanf(“%d”,&x);
scanf(“%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);
方法1:用getchar()清除
int x; char ch;
scanf("%d",&x);
getchar();
ch = getchar();
printf("x=%d, ch=%d\n",x,ch);
方法2:用格式串中空格或“%*c”来“吃掉”
int x; char ch;
scanf(“%d”,&x);
scanf(“空格%c”,&ch);或 scanf(“%*c%c”,&ch);