朝花夕拾 · C语言 | 函数篇

一.字符输入输出函数

     1.  putchar函数(字符输出函数)

        从内存向终端输出一个字符。其一般形式为 putchar(c),c既可以是字符型变量或整型变量

	    putchar('A');
        putchar(65);     
        输出AA

    2.  getchar函数 (字符输入函数)

        从终端向内存输出一个字符。getchar函数没有参数,其一般形式为 getchar(),函数的值就是从输入设备得到的字符。

	int ret=getchar();    
	putchar(ret);            
	printf("%d,%c\n",ret,ret);
    
    输入    A
    输出    A65,A

        putchar与getchar可结合使用

	    putchar(getchar()-32);
        实现将终端输入的小写字母转换为大写输出

3.  printf

printf的一般形式为:printf(格式控制,输出表列),当二者数量不匹配时多余位随机输出 

整型:        

1. %u           以十进制无符号整型输出

2. %lu          以十进制无符号长整型输出

    %ld          以十进制长整型输出

    由于int与char型兼容,%c也可输出整型,如输出int时会将高位截断,保留低八位转换为对应的ASCII码值,虽结果有误,但语法正确

浮点型:    

3. %f            以float型输出,也可以输出double

     %lf            以double型输出

八进制:     

4. %o           以八进制输出

   %#o          以0xxx输出八进制

十六进制:  

5.%x             以十六进制输出

   %#x            以0x输出十六进制(小写)

   %#X           以0X输出十六进制

 科学计数法:

 6. %e         

     %E         

                         ' \" ' 输出  "

域宽输出:

 7.  %nd         以n位域宽输出,若数据大于n位则以实际位数输出,否则左侧补空

                         %-nd        以n位域宽输出左对齐

                         %0nd       以n位域宽输出并且前面补0

                         %.nf         以n位小数输出

                         %m.nf      以m位域宽,n位小数输出

                         %-0nd      报警告只会左对齐不补零

        八进制与十六进制也可指定输出域宽,如%8o表示输出八位八进制数,%8x表示输出八位十六进制数;此外,%lo与%lx则可表示以八和十六进制输出long型。

        八进制和十六进制输出无关符号

     int a = -1;
    
    printf("十进制(有符号): %d\n", a);   // 输出:-1
    printf("八进制(无符号): %o\n", a);   // 输出:37777777777(32位系统)或1777777777777777777777(64位)
    printf("十六进制(无符号): %x\n", a); // 输出:ffffffff(32位系统)或 ffffffffffffffff(64位)

        总结如下图所示

4.  scanf

        将从终端输入的值存入已开辟的内存地址中。

1.格式说明

        在输入整型时,可以使用空格,Tab与Enter隔开两数,除此之外用其他字符则会直接中断输入,舍弃后续读入的数字。

    scanf("%d %d",&m,&n);
    scanf("%d%d",&m,&n);
    这两种写法相同,同时若输入小数,则只会保存整数部分

        在%c输入字符时, 中间加空格可吸收所有空格,Tab与Enter。

	    scanf("%c %c",&a,&b);//可吸收空格,Tab与Enter
        scanf("%c%c",&a,&b);//读取空格,Tab与Enter,因为其也是字符

2.注意事项      

        此外 ,%f 不能接收double型,且双引号里写了什么,在输入时也要相同,所以除了格式控制符之外尽可能少写其他数据。以下是使用scanf时应注意的事项。

        此外,当有多次scanf输入时,在终端会连续读取

    int a;
    char ch;
    scanf("%d",&a);
    //getchar();
    scanf("%c",&ch);
    当输入一个整型之后会继续读取下一行的字符输入,可使用getchar()吸收空格等,注意getchar只能读取一个字符
    int ch;
    while ((ch = getchar()) != '\n' && ch != EOF);
    //通过循环可实现持续吸收缓存

     5.  puts/gets

     puts   将字符串从内存输出到终端,自动换行

    char str[128]={"hello,world"};
    puts(str);

     gets   将字符串从终端读到内存(字符串数组),可能造成越界访问。

        char str[128]={0};
        gets(str);

二.函数定义的一般形式

三.函数的参数与值

四.函数的调用

五.函数的嵌套与递归

        未完待更。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值