zoukankan      html  css  js  c++  java
  • C++算法题的一些输入技巧

    运行C++的终端中如何结束输入

    有时候我们运行程序的时候,是以EOF结束程序,可是在终端中,输入空格,TAB和回车符都是无法结束输入的,所以这时我们使用其他方式。

    1. 在Windows中,输入完成后先按Enter键,再按Ctrl+Z键,最后再按Enter键即可结束输入。
    2. 在Linux中,输入完毕后按Ctrl+D键即可结束输入。

    输入保留空格和回车

    无法使用scanf("%s")输入字符串,因为它遇到空格或TAB就会停下来,所以我们可以使用下面两种方法:

    1.getchar(),如果题目是可以边读边处理的,这种是最好的方法。

    int c;
    while((c = getchar()) != EOF){
        ...
    }
    

    2.gets(),如果不满足上述条件,只能使用这种方案。

    char c[8];
    while(gets(c)!=NULL){
        ...
    }
    

    输入忽略换行符

    有时候我们会碰到编码文本可以由多行组成,这里我们可以使用"跨行读字符"的函数readchar

    int readchar(){
        for(;;){
            int ch = getchar();
            if(ch != '
    ' && ch != '
    ') return ch; // 一直读到非换行字符为止
        }
    }
    
    int readint(int c){
        int v = 0;
        while(c--) v = v * 2 + readchar - '0';
        return v;
    }
    
  • 相关阅读:
    分层图(了解一下,下一道比较好做)
    图论---The Captain
    数论
    NOIp复习计划
    20201116 Day4 卢卡斯定理
    20201113 Day3 斜率优化
    20201110Day2 分块
    20201030 day50 复习13:逆元、裴蜀定理
    20201030day50 模板全掌握
    20201029 day49 模拟(十八)
  • 原文地址:https://www.cnblogs.com/harrylyx/p/12421259.html
Copyright © 2011-2022 走看看