zoukankan      html  css  js  c++  java
  • printf和scanf的几点新发现

    1、关于printf的缓存刷新问题。

    https://blog.csdn.net/h___q/article/details/82469598

    printf()语句在打印在屏幕之前,需要把输出发送到一个叫作缓冲区(buffer)的中间存储区域。

    待打印的内容放入缓冲区后,需要刷新之后才能打印出来。当缓冲区满、遇到换行字符或者需要输入的时候(从缓冲冲区把数据发送到屏幕或文件被称为刷新缓存区)。

    2、关于scanf()的读问题。

    scanf()按照转换说明,将除了空格、换行、制表符(tab)外的对应字符读取(字符读取除外),直到遇到非对应字符停止读取,计算值然后赋给变量。

    3、我遇到的问题是如下程序:

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    int main(void)
    {
        char ch;
    
        scanf("%c",&ch);
    
        while (ch != 'g') {
            printf("%c", ch);
            scanf("%c", &ch);
        }
    
        return 0;
    }

    在输入队列中依次读取,之后连续打印出来。

    结果输出如下:

    Go west,young man!

    Go west,youn

    scanf()在whlie循环下不断依次从屏幕中取字符,放入printf()队列中,最后统一输出。

    Q:原理在哪?

    预则立,不预则废
  • 相关阅读:
    docker 简单使用
    apache 目录网站显示indexs
    MySQL索引失效的几种情况
    mysql 基本常用语句
    UNIX 版本
    B语言的发明者 Ken Thomson & C语言的发明者Dennis Ritchie
    My SQl 积累
    C# DGV多行选择
    C#中很模糊查询DGV中数据的两种方法
    网址
  • 原文地址:https://www.cnblogs.com/awheat/p/12183000.html
Copyright © 2011-2022 走看看