zoukankan      html  css  js  c++  java
  • printf函数与缓冲区

    printf函数与缓冲区

    printf函数是一个行缓冲函数,先将内容写到缓冲区,满足一定条件后,才会将内容写入对应的文件或流中。

    基本条件如下:

    1.缓冲区填满
    2.写入的字符中有‘
    ’ '
    '
    3.调用fflush或stdout手动刷新缓冲区
    4.调用scanf等要从缓冲区中读取数据时,也会将缓冲区内的数据刷新
    5.程序结束时

    有以下示例1验证:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 /*argc:命令行输入参数个数,argv:命令行参数 
     5  *argv为字符指针数组,argv[i]为指向第i个命令行参数内容的指针
     6  */
     7 int main(int argc, char **argv){ 
     8     int i;
     9     char a='a';
    10     if(argc != 2) //命令行参数为2,否则出错
    11     {
    12         printf("Usage:%s Number
    ",argv[0]); 
    13         return 0;
    14     }
    15 
    16     for(i=0;i<atoi(argv[1]);i++) //atoi:字符转化为整数
    17     {
    18         printf("%c",a);
    19     }
    20     
    21     while(1);  //让程序一直运行
    22 }

    运行结果:

     说明linux下,printf缓冲区大小为1024字节。while(1)使程序一直运行,当缓冲区未满时,不会输出打印。

    示例2:

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int i;
     6     for(i=0; i<10; i++)
     7     {
     8         printf("a");
     9         fflush(stdout); //参数为文件指针
    10     }
    11     while(1);
    12     return 0;
    13 }

    没进行流刷新之前

    流刷新fflush之后

  • 相关阅读:
    我要变牛逼
    java web
    导师选择
    2.1进程
    来到博客园写东西的第一天
    简单的页面布局
    html5
    第一个servlet程序
    java2D
    字节流 文件字节流 缓冲字节流
  • 原文地址:https://www.cnblogs.com/y4247464/p/12024742.html
Copyright © 2011-2022 走看看