zoukankan      html  css  js  c++  java
  • C语言的输入输出操作函数小结

    一.scanf()&printf()函数

      scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。  scanf()函数原型为int scanf( char const* const _Format, ...),printf()函数原型为int printf(char const* const _Format, ...)。 scanf()和printf()是格式化输入通过%d,%s,%c等限定输入/输出的类型及格式,因此书写需要格外注意格式和类型,scanf()后面的变量需要取变量的地址。出于安全考虑,一般用scanf_s()代替旧版scanf()函数。

    如下实例

    #include <stdio.h>
    
    int main()
    {
        int  c, d;
        printf("请输入数值:");
        scanf_s("%d %d", &c,&d);
        printf("输出结果为:");
        printf("%d %d
    ", c,d);
    return 0;
    }

    输出如下

    值得注意的是,当输入如下代码时

    #include <stdio.h>
    
    int main()
    {
        int  c;
        printf("请输入数值:");
        scanf_s("%d ", &c);    //    注意%d后面有个空格
        printf("输出结果为:");
        printf("%d
    ", c);
        return 0;
    }

    我们运行代码,得到下面输出界面

      我们原先输入10,按回车它并不会马上输出我们的结果,我们需要在输入一个非空格和非换行符,再按回车键才会输出我们的结果。因为scanf()函数里面的%d后面有个空格,所以他需要遇到非空格和换行符才会结束输入。

    二.getchar()&putchar()函数

      getchar()和putchar()函数是单个字符输入/输出函数,getchar有一个int型的返回值。当程序调用getchar时.程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCⅡ码,如出错返回-1,且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。

    代码实例

    #include <stdio.h>
    
    int main()
    {
        int c;
        printf("请输入一个字符:");
        c = getchar();
        printf("
    你的输入: ");
        putchar(c);
        printf("
    ");
        return 0;
    }

    输出结果

      当要输入多个字符并输出显示时,需要用到循环语句,可以利用getch()从键盘输入一串字符到缓冲区,字符输入以回车结束,回车字符同时存储在缓冲区,然后用putchar()读取缓冲区字符,设置条件遇到回车字符时结束即可。

    代码实例

    #include <stdio.h>
    
    int main()
    {
        int c;
        printf("请输入字符:");
        while ((c=getchar()) != '
    ')    //    向缓冲区输入字符,按回车时结束输入
        {        
            putchar(c);        //    读取缓冲区的字符
        }
        printf("
    ");
        return 0;
    }

    输出结果

      

      还有一个函数get()getchar()基本功能相同,差别是getch()直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch()就立刻返回,通常应用在游戏中。

    三.gets()&puts()函数

      gets()和puts()是文本行输入/输出函数。gets()从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取。出于安全考虑,一般用gets_s()代替gets()函数。

    代码实例

    #include <stdio.h>
    
    int main()
    {
        char str[100];
    
        printf("请输入文本:");
        gets_s(str);
    
        printf("你的输入为: ");
        puts(str);
        return 0;
    }

    输出结果

  • 相关阅读:
    菜鸟刷题路:剑指 Offer 09. 用两个栈实现队列
    python 全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)
    python 全栈开发,Day39(进程同步控制(锁,信号量,事件),进程间通信(队列,生产者消费者模型))
    python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
    python 全栈开发,Day37(操作系统的发展史)
    python 全栈开发,Day36(作业讲解(大文件下载以及进度条展示),socket的更多方法介绍,验证客户端链接的合法性hmac,socketserver)
    python 全栈开发,Day35(TCP协议 粘包现象 和解决方案)
    python 全栈开发,Day34(基于UDP协议的socket)
    python 全栈开发,Day33(tcp协议和udp协议,互联网协议与osi模型,socket概念,套接字(socket)初使用)
    python 全栈开发,Day32(知识回顾,网络编程基础)
  • 原文地址:https://www.cnblogs.com/maluning/p/7955760.html
Copyright © 2011-2022 走看看