010.只是read( )、wr( )

添加实用功能

  • 同时读入+自动识别类型
    template<typename T,typename...Args>
    void read(T&first,Args&...rest){
        read(first);
        read(rest...);
    }


    //使用
    int a;
    long long b;
    char c;
    string d;
    read(a,b,c,d);
  • 读写单字符
    void read(char &c){
        c=getchar();
        while(isspace(c))c=getchar();
    }
    void wr(const char c){
        putchar(c);
    }


    //使用
    char op;
    read(op);

    wr('\n');
    wr(' ');
    wr('-')
  • 直接输出字符串
    void wr(const char *s) {
        while (*s) putchar(*s++);
    }


    //使用
    wr("YES\n")
    wr("NO\n")
    wr("Bob\n")
  • 同时输出,自动空格分隔
    template<typename T,typename...Args>
    void wr(const T&first, const Args&...rest){
        wr(first);
        ((putchar(' '),wr(rest)), ...);
    }


    //使用
    wr(a,b,c,d,'\n');

模板

namespace IO{
    template<typename T>void read(T&x){x=0;bool f=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}if(f)x=-x;}
    void read(string&s){s.clear();char ch=getchar();while(isspace(ch))ch=getchar();while(!isspace(ch)&&ch!=EOF){s+=ch;ch=getchar();}}
    template<typename T>void wr(T x){if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x;char stk[20];int top=0;while(x)stk[++top]=x%10+'0',x/=10;while(top)putchar(stk[top--]);}
    void wr(const string &s){for(char c:s)putchar(c);}
    template<typename T>void wr(const T&x,char sep){wr(x);putchar(sep);}
    template<typename T,typename...Args>void read(T&first,Args&...rest){read(first);read(rest...);}
    void read(char &c){c=getchar();while(isspace(c))c=getchar();}
    void wr(const char c){putchar(c);}
    void wr(const char*s){while(*s)putchar(*s++);}
    template<typename T,typename...Args>void wr(const T&first, const Args&...rest){wr(first);((putchar(' '),wr(rest)), ...);}
}using namespace IO;

又水一篇

posted @ 2025-12-14 21:28  一般通过bot  阅读(3)  评论(0)    收藏  举报