C语言输入输出函数

1 单字符输入输出

1.1 putchar

int putchar (int c)

输出一个字符:

        c 可以是一个字符   'a'

        可以是字符ASCII   65

        可以是字符变量   char ch='A'

        可以是一个字符的算术表达式   'A' + 32

返回值:

        成功:返回对应ASCII,将char类型转换为int类型

        失败:返回错误码EOF(-1)

1.2 getchar

int getchar(void)

获得一个字符,可以吃掉垃圾字符:

无参数

成功:返回字符对应ASCII

失败:返回错误码EOF

空格  tab  回车也是一个字符

2 字符串输入输出

2.1 puts

int puts(const char *s)

输出一个字符,输出后自动输出一个换行符:

        输出可以是字符串常量   "hello"

        可以是一个字符数组   char str[100] = "world"

        可以是一个字符指针   cahr *p = "hello world"

成功:返回非负的正数,输出字符的个数,即字符串长度+1

失败:返回错误码EOF

2.2 gets

char *gets(char * s)

获取一个字符串:

        存储获取字符串的缓冲区的首地址

        传递一个字符数组名,使用字符数组存储字符

成功:返回字符串地址

失败:返回空指针

char buffer[10];//存储字符串长度最大为9,要留一个\0空间
gets(buffer); //输入字符串长度大于9,gets不会自动结束,
                当enter键按下时字符串结束,字符数组无法存储超过的字符串,
                非法空间写入数据,核心已转储报错
puts(buffer);

3 格式化字符串输入输出

3.1 printf

int printf(const char *format,...)

输出格式化字符串:

        format:输出的格式化字符串

        ...  :可变参数

成功:返回打印字符个数

失败:返回一个负数

 3.2 scanf

int scanf(const char *format, . . .)

从终端接收数据赋值给变量:

        format:输出的格式化字符串

        ...  :可变参数

成功:返回接收数据条目个数

失败:返回错误码

int main(int argc, const char* argv[])
{
    double pi;

    scanf("%lf", &pi);//小数形式浮点小数long型
    printf("pi = %le\n", pi);//小数形式输入,指数打印3.14——>3.140000e+00

    scanf("%le", &pi);//指数输入小数打印 3.1415e2——>314.150000
    printf("pi = %lf\n", pi);

    unsigned int x;
    scanf("%x", &x);
    printf("%#x\n", x);//AF——>0xaf

    scanf("%o", &x);
    printf("%#o\n", x);//067——>067    678——>067 因为8超过8进制

   char buf[10];
    scanf("%9s", buf);//输入字符串遇到空格,tab,回车就会结束接收,只接收9个字符

    int a;
    int b;
    scanf("%d%*d%d", &a,&b);
    printf("%d,%d\n", a, b);

    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);//连续输入以空格,tab,回车符为分隔符

    //1.:
    char buf[20];
    scanf("%s", buf);//只接受空格前面的

    gets(buf);//可以接收带空格字符串
    printf("%s\n", buf);

    while (getchar() != '\n');//吃掉换行

    gets(buf);//读取缓冲区剩余字符
    printf("%s\n", buf);

    //2.:
    char buf[20];
    scanf("%[^\n]s", buf);//除了回车都能接收
    printf("%s\n", buf);

    //3.:
    int a;
    scanf("%d\n", &a);
    printf("%d\n", a);//有\n,\r,\t,空格时,输入按回车没有用,输入任意字符scanf才会退出


    //4.:
    int d;
    scanf("a = %d", &d);
    printf("%d \n", d);//原样手输入

    //5.只有输入字符串或%c(空格,tab,回车会认为是字符)才接收垃圾字符,输入数字如果有其他字符不会接收

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值