C语言学习1.2

. 输入输出

6.1 数据输出

C语言无I/O语句,I/O操作由函数实现

#include <stdio.h>

字符输出函数

格式:putchar(c)

参数:c字符常量,变量或者表达式

功能:把字符c输出到显示器中

返回值:

正常,为显示的代码值

#include<stdio.h>
int main()
{
   int a;
   char b;
   a=69;
   b='A';
   putchar(a);
   putchar('\n');
   putchar(b);
    return 0;
}

6.2 格式输出函数

格式:printf格式控制符,输出表)

功能:按指定格式向显示器输出数据

输出表:要输出的数据

格式控制串:包含两种信息

格式说明: % [修饰符]格式字符,用于指定输出格式

普通字符:原样输出

#include<stdio.h>
int main()
{
   int a=11;
   char b=65,c[]="hello,world!";
   float d=3.141;

   printf("%d,%x,%o\n",a,a,a);  //%o中的o为字母
   printf("%c\n",b);
   printf("%s\n",c);
   printf("%e,%f,%g\n",d,d,d);
    return 0;
}

#include<stdio.h>
int main()
{
   int a=123456;
   char b=65,c[]="hello-world!";
   float d=3.141;

   printf("%8d,%2d\n",a,a);
   printf("%08d,%2d\n",a,a);
   printf("%0+8d,%2d\n",a,a);
   printf("%6f,%6.2f,%.2f\n",d,d,d);
   printf("%6f,%0+6.2f,%.2f\n",d,d,d);
   printf("%c,%3c\n",b,b);
   printf("%c,%03c\n",b,b);
   printf("%c,%0+3c\n",b,b);   //结果与上个输出一样,因而在字符型(%c)中“+”无用
   printf("%s,%16s,%8.5s,%8.11s,%.5s\n",c,c,c,c,c);
   printf("%s,%016s,%8.5s,%8.11s,%.5s\n",c,c,c,c,c);//结果与上个输出一样,因而在字符串型(%s)中“+”无用
    return 0;
}

6.3 字符输入函数

字符输入函数getchar

格式:getchar()

功能:从键盘一字符

返回值:正常,返回读取的代码值;出错或结束返回-1

6.4 格式输入函数

格式:scanf格式控制串,地址表)

功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束

返回值:正常,返回输入数据个数

地址表:变量的地址,常用取地址运算符&

目前,scanf支持的格式字符很多,比如:

scanf函数支持的说明符可以带以下修饰符

例1:
scanf("%4d%2d%2d",&aa,&bb,&cc);
 若输入19991225
    则aa为1999,bb为12,cc为25
例2:
scanf("%2d %*3d%2d",&a,&b);
    若输入1234567
    则a为12,b为78

说明:

"%c"格式符时,空格和转义字符作为有效字符输入

scanf("%c%c%c",&c1,&c2,&c3);
若输入a b c
则C1为a,C2为空格,C3为b

总结:输入数据的时候,遇到以下情况认为该函数结束

遇到空格,TAB或回车

遇非法输入

遇宽度结束

6.5 输入函数垃圾清理

#include<stdio.h>
int main()
{
    int x;
    char ch;
    scanf("%d",&x);
    scanf("%c",&ch);
    printf("x=%d ch=%c\n",x,ch);//输入9和回车
    return 0;
}

方法1:用getchar清除


#include<stdio.h>
int main()
{
    int x;
    char ch;
    scanf("%d",&x);
    getchar();
    scanf("%c",&ch);
    printf("x=%d ch=%c\n",x,ch);//输入9,回车,a
    return 0;
}

方法2:用格式串中空格或“%*c”来 吃掉

#include<stdio.h>
int main()
{
    int x;
    char ch;
    scanf("%d",&x);
    scanf("%*c%c",&ch);
    printf("x=%d ch=%c\n",x,ch);//输入9,回车,a
    return 0;
}

6.6 字符串输入输出函数

6.6.1 字符串输入函数gets

格式:char * gets(char *s)

功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加 ‘\0’

说明1:输入串长度应小于字符数组维数

说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志

#include<stdio.h>
int main()
{
    char x[6];
    gets(x);
    printf("%s\n",x);
    return 0;
}

6.6.2 字符串输出函数put

格式:int puts(const char *s)

功能:向显示器输出字符串(输出完,换行)

说明:字符数组必须以‘\0结束

#include<stdio.h>
int main()
{
    char x[6];
    gets(x);
    puts(x);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值