C语言学习之路--第十二站 输入 | 输出

41 阅读2分钟

输入输出是一个程序很重要的内容

  • C语言将所有设备都当作文件。当需要时便会用文件指针将对应的设备文件打开。
    • 标准文件 文件指针 设备
    • 标准输入 stdin 键盘
    • 标准输出 stdout 屏幕
    • 标准错误 stder 您的屏幕
  • 可以通过命令行或者文件的形式进行输入
  • 可以将数据输出到计算机屏幕或保存到文本或二进制文件中

输出到屏幕

  • 使用 printf() 用于格式化输出到屏幕。需要在 stdion.h 头文件中声明
  • #include stdio.h;
  • printf("%d%f",a,b); %d是整型输出,%f是浮点型输出

关于printf使用很普遍了,直接跳过。

从屏幕读取 然后输出到屏幕上

  • getchar() ,putchar()
    • getchar(void) 从屏幕读取下一个可用的字符,并把它返回成一个整型,同一时间只能读取单一字符,配合循环使用。
    • putchar(int c) 把字符输出到屏幕上,并返回相同的字符,同一时间只能输出单一字符,配合循环使用。
  • gets() , puts()
    • char *gets(char *s)stdin 读取一行到s 所指向的缓冲区 ,知道一个终止符或 EOF
    • int puts(const char *s) 把字符串s和一个尾随的换行符写入到stdout
  • scanf() , printf()
    • int scanf(const char *format,...) 从标准输入流stdin 读取输入,并根据提供的format 来浏览输入

    • int printf(const char *format,...) 把输入写入标准输出流stdout,并根据提供的格式产生输出

        int get_put_demo()
        {
            int c;
            printf("输入一个字符:");
            c = getchar();
      
            printf("\n 你输入的是:");
            putchar(c);
            printf("\n");
      
            char str[100];
      
            printf("输入一行字符:");
            //gets( str );
      
            printf("\n 你输入的是:");
            //puts(str);
            printf("\n");
      
            char strc[100];
            int inc;
            printf("输入一行字符:");
            scanf_s("%s", strc);
            scanf_s("%d",&inc);
            printf("\n 你输入的是: %s %d \n", strc, inc);
      
        }
      

image.png

在测试中发现了几个问题

  1. gets(),puts() 函数无反应。介于使用频次低,场景少,因此不深究
  2. scanf函数在使用时报错,与安全性相关,经过搜寻 加后缀 _s 即可解决
  3. 在代码中将 strc 与 inc 分开读写,因为在一行读写时会识别到空格,导致整数变为 10
  • 还有解决方法是
    • int i; char c; scanf("%d%[^' '^'\n']", &i, &c);
    • int i; char c; scanf("%d", &i); while((c=getchar())==' ' || c=='\n'); c = getchar();

基本内容就是这些, 其他深入的内容在使用中学习效果可能更好。