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;
    }
    
  • 相关阅读:
    任意进制间的转换
    判断线段相交 hdu 1086
    大数(高精度)加减乘除取模运算
    sqlserver2008透明书库加密
    数据库质疑
    sql2005 和sql2008 同时安装
    editrules
    sqlserver 表值函数
    sqlserver释放内存
    sql2008查看备份进度
  • 原文地址:https://www.cnblogs.com/harrylyx/p/12421259.html
Copyright © 2011-2022 走看看