• c语言学习(3)


    c语言基础知识网站,多掌握一些库函数, http://www.cplusplus.com/reference/iolibrary/ 

    参考:https://www.runoob.com/cprogramming/c-function-fflush.html

    --------------------------------------------

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    
       char buff[1050];
    
       memset( buff, '', sizeof( buff ));
    
       fprintf(stdout, "启用全缓冲
    ");
       setvbuf(stdout, buff, _IOFBF, 30);
    
       fprintf(stdout, "这里是 runoob.com
    ");
       fprintf(stdout, "该输出将保存到 buff
    ");
       fflush( stdout );
    
       fprintf(stdout, "这将在编程时出现
    ");
       fprintf(stdout, "最后休眠五秒钟
    ");
       fprintf(stdout, "最后休眠五秒钟1
    ");
       fprintf(stdout, "最后休眠五秒钟2
    ");
       fprintf(stdout, "最后休眠五秒钟3
    ");
       fprintf(stdout, "最后休眠五秒钟4
    ");
       fprintf(stdout, "最后休眠五秒钟5
    ");
    
       sleep(5);
    
       return(0);
    }
    

      

    -----------------------

    --------------------------

    c语言字符串的初始化,

    https://stackoverflow.com/questions/18688971/c-char-array-initialization#:~:text=You%20can%20use%20double%20quotes,the%20NUL%20character%20in%20it.

    Edit: OP (or an editor) silently changed some of the single quotes in the original question to double quotes at some point after I provided this answer.

    Your code will result in compiler errors. Your first code fragment:

    char buf[10] ; buf = ''

    is doubly illegal. First, in C, there is no such thing as an empty char. You can use double quotes to designate an empty string, as with:

    char* buf = "";

    That will give you a pointer to a NUL string, i.e., a single-character string with only the NUL character in it. But you cannot use single quotes with nothing inside them--that is undefined. If you need to designate the NUL character, you have to specify it:

    char buf = '';

    The backslash is necessary to disambiguate from character '0'.

    char buf = 0;

    accomplishes the same thing, but the former is a tad less ambiguous to read, I think.

    Secondly, you cannot initialize arrays after they have been defined.

    char buf[10];

    declares and defines the array. The array identifier buf is now an address in memory, and you cannot change where buf points through assignment. So

    buf =     // anything on RHS

    is illegal. Your second and third code fragments are illegal for this reason.

    To initialize an array, you have to do it at the time of definition:

    char buf [10] = ' ';

    will give you a 10-character array with the first char being the space '40' and the rest being NUL, i.e., ''. When an array is declared and defined with an initializer, the array elements (if any) past the ones with specified initial values are automatically padded with 0. There will not be any "random content".

    If you declare and define the array but don't initialize it, as in the following:

    char buf [10];

    you will have random content in all the elements.

  • 相关阅读:
    把excel导入的自定义时间改成yyyyMMdd
    sql多表查询时怎么获取查到的字段
    select 和 input 的不可编辑,input隐藏
    关闭dialog(lhgdialog)
    ajax 和 post 传多个参数值具体怎么写
    弹出提示框,对话框
    function方法中this的用法
    combobox获取值
    easyui-panel 滚动条禁用
    字符串用逗号隔开;有逗号的字符串遍历
  • 原文地址:https://www.cnblogs.com/oxspirt/p/13511315.html
Copyright © 2020-2023  润新知