zoukankan      html  css  js  c++  java
  • scanf使用过程中的技巧与坑位

    scanf()默认:

      遇到空白符就当是输入(空格,制表符,回车均为空白符);

    我的预期:

      空白,制表符当成内容,不作为输入指令,仅当回车时才完成输入。

    遇到的坑位:

      连续输入时,最后一条始终要到下次才被读入。

    解决:

      %[^n] :接收除回车之外的所以字符;

      fflush(stdin): 清空输入

      getchar(): 将最后一个回车符吃掉,以免影响下一条输入,或者scanf("%c", &tchar)。

    sprintf(txtbuff,"[%s :>>>>>>>>>>>>>>>>>>>
    ", name_head);
            while(1) {
                memset(wrbuf,0,sizeof(wrbuf));
                scanf("%[^
    ]",wrbuf);
                scanf("%c",&tmpchar);
                fflush(stdin);
                if( strcmp(wrbuf,"send")==0 ) {
                    break;
                }
                strcat(wrbuf,"
    ");
                strcat(txtbuff,wrbuf);
            }
            char endchar[50]={0};
            sprintf(endchar,"<<<<<<<<<<<<<<<<<<<%s]
    ",name_head);
            strcat(txtbuff,endchar);
  • 相关阅读:
    去除inline-block出现间距的几种方法
    vscode插件和快捷键
    es6三个点运算符
    jq返回顶部
    jq版轮播图
    js动态操作DOM
    js中的闭包
    es6之箭头函数
    in和hasOwnProperty的区别
    改变this指向的三种方法
  • 原文地址:https://www.cnblogs.com/xxg1992/p/7686383.html
Copyright © 2011-2022 走看看