C语言无I/O语句,i/o操作由函数实现
#include<stdio.h>
字符输出函数putchar:
格式:putchar(c)
参数:c为字符常量,变量或者表达式
功能:把字符c输出到显示器上
返回值:正常,为显示的代码值
#include<stdio.h>
int main()
{
int c;
char a;
c = ;
a ='B';
putchar(c);
putchar('\n');
putchar(a);
}// A
B
格式输出函数printf
格式:printf("格式控制符",输出表)
功能:按照指定的格式向显示器输出数据
输出表:要输出的信息
格式控制符:包含两种信息
格式说明:%【修饰符】格式字符,用于指定输出格式
普通字符:原样输出
static char a[]="hello world!"
printf("%s\n",a);
printf("%15s\n",a);
printf("%10.5s\n",a);
printf("%2.5s\n",a);
printf("%.3s\n",a);
//output
hello world!
hello world!
hello
hello
hel
字符输入函数getchar
格式:getchar()
功能:从键盘读取一个字符
返回值:正常,返回读取的代码值;错误或者结束键盘输入,返回-1
#include<stdio.h>
int main()
{
int c;
printf("enter a character:");
c = getchar();
printf("%c--%d-->hex%x\n",c,c,c);
return ;
}
//output
enter a character:A
A---->HEX41
格式输入函数scanf
格式:scanf("格式控制符",地址表);
功能:按照指定格式从键盘读入数据,存入地址表
存储单元中,按回车键结束
返回值:正常,返回输入数据个数
地址表:变量的地址,常用取地址符&
说明:
用"%c"格式符,空格和转义字符作为有效字符输入
例子:
scanf("%c%c%c",&c1,&c2,&c3);
/*若输入a b c
则c1为a,c2为空格,c3为b*/
总结:在输入数据时,遇到以下情况认为数据结束:
遇到空格,TAB,或者回车
遇非法输入
遇宽度结束
例子:
ret = scanf("%d%c%f",&a,&b,&c);
/*
若输入1234a123o.26
则a为1234,b为‘a’,c为123 */
************************************************如何处理输入函数留下的垃圾******************************************************
使用输入函数可能会留下垃圾
int x;
char ch;
scanf("%d",&x);
scanf("%ch",&ch);
printf("x=%d,ch=%c\n",x,ch);
//当输入第二次的时候,第一次的输入之后的回车被当作输入的字符
方法1:
用getchar()清除:
int x;
char ch;
scanf("%d",&x);
getchar();
ch = getchar();
printf("x= %d,ch =%c\n",x,ch);
方法2:
用格式串中空格或者“%*c”来吃掉
int x;
char ch;
scanf("%d",&x);
scanf(" %c",&ch);or scanf("%*c%c",&ch)
字符串输入函数:gets
格式:char * gets(char *s)
功能:从键盘输入一回车结束的字符串放入字符数组中,并且自动加'\0'
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志
int main( )
{
char string[];
printf(“Input a string:”);
gets(string);
printf(“%s\n”, string);
return ;
}
字符串输出函数puts
‐格式: int puts(const char *s)
‐功能:向显示器输出字符串( 输出完,换行)
‐说明:字符数组必须以‘ \0’ 结束
#include <stdio.h>
int main( )
{
char string[] = “How are you”;
puts(string);
return ;
}
输入: How are you?
输出: How are you ?