5.C语言输入输出

头文件 <stdio.h>

字符输出函数

格式:putchar( c )

参数:c为字符常量、变量或表达式

格式输出函数

格式:printf(“格式控制字符串”,输出参数)

格式控制字符串:%[修饰符]格式字符,用于指定输出格式

普通字符:原样输出

格式字符

格式符说明例子
i,d十进制整数printf(“%d\n”, 123); //123
x,X十六进制无符号整数printf(“%x\n”, 123); //7b
o八进制无符号整数printf(“%o\n”, 123); //173
u无符号十进制整数printf(“%u\n”, 123); //123
c单一字符printf(“%c\n”, 123); //{
s字符串printf(“%s\n”, “abc”); //abc
e,E指数形式浮点小数printf(“%e\n”, 123.456); //1.234560e+002
f小数形式浮点小数printf(“%f\n”, 123.456); //123.456000
ge和f中较短一种printf(“%g\n”, 123.456); //123.456
%%百分号本身printf(“%%\n”); //%
m输出数据域宽,数据长度<m,左补空格;否则按实际输出printf(“%8d,%2d\r\n”,1234,1234); // 1234,1234
.n对实数,指定小数点后位数(四舍五入);对字符串,指定实际输出位数printf(“%f,%8f,%8.1f,%.2f\r\n”,123.456,123.456,123.456,123.456); //123.456000,123.456000, 123.5,123.46
-输出数据在域内左对齐(缺省右对齐)在这里插入图片描述
0输出数值时指定左面不使用的空位置自动填0printf(“%05d\r\n”,123); //00123
#在八进制和十六进制数前显示前导0,0xprintf(“%#o\r\n”,123); //0173

字符输入函数

函数:getchar(),从键盘中读取一个字符,正常,返回读取的代码值;出错或结束键盘输入,返回-1 (ctrl d)。

函数:scanf(“格式控制串”,地址表),按指定格式从键盘读入数据,存入地址表指定,反值:返回输入数据的个数。

scanf支持的格式字符:

格式符号作用
i, d十进制整数
x, X十六进制无符号整数
o八进制无符号整数
u无符号十进制整数
c单一字符
s字符串
e指数形式浮点小数
f小数形式浮点小数
修饰符功能
h用于d, o, x前,指定输入为short型整数
l用于d, o, x前,指定输入为long型整数 ;用于e, f前,指定输入为double型实数
m指定输入数据宽度,遇空格或不可转换字符结束
*抑制符,指定输入项读入后不赋给变量

输入函数留下的"垃圾”

方法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);

字符串输入函数

格式: char * gets(char *s)

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

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

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

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 20
int strlen(const char* arr);

int main()
{
    char arr[N];
    while (gets(arr) != EOF)
    {
        int length = strlen(arr);
        printf("length = %d\n", length);
    }
    return 0;
}

int strlen(const char* arr)
{
    const char* s;
    for (s = arr; *s != '\0'; ++s)
        ;
    return s - arr;
}

字符串输出函数

字符串输出函数puts

格式:int puts(const char *s)

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值