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