• 【C++】输入多行数字到数组


    前天做某公司笔试题的时候,其输入格式是多行数字,每行以空格为分隔符,以换行符号为结束输入到多个数组。在JAVA中有相应的函数直接将一行拆成数组,感觉在C++中这中输入方式还是挺奇怪的,今天想出一种解决方式。

    思路:

    每次读入一个字符,判断是不是EOF,如果是的话跳出循环;

    不是EOF将字符放回缓冲区;

    读入换行符,说明一行结束,处理数组;

    读入字符,如果不是空格,存入一个临时的字符串;

    如果是空格,字符串转换成整数并压入数组;

    注意:

    对于连续的空格输入要进行判断,否则会输入一堆0;

    在读入换行符的时候要将最后的临时字符串存进数组;

    代码:

    #include<iostream>
    #include<string>
    #include<vector>
    #include<cstdlib>
    using namespace std;
    
    int main() {
        char flag;
        while ((flag=getchar())!=EOF) {
            putchar(flag);
            string tmpStr;
            vector<int> buff;
            char c;
            while ((c = getchar()) != '
    ') {
                if (c != ' ')
                    tmpStr.push_back(c);
                else {
                    if (tmpStr != "") {
                        buff.push_back(atoi(tmpStr.c_str()));
                        tmpStr = "";
                    }
                }
            }
            if(tmpStr!="")
                buff.push_back(atoi(tmpStr.c_str()));
            for (auto a : buff)
                cout << a << ' ';
            cout << '
    ';
        }
    }
  • 相关阅读:
    linux学习 建立静态库,动态库,写简单的makefile
    C++中顶层const和底层const
    BDB (Berkeley DB)数据库简单介绍(转载)
    Java中Map的使用
    Spring MVC 3 深入总结
    nvl,空时的推断和取值
    java堆栈 (转)
    mybatis--面向接口编程
    HDU 4888
    socket编程——一个简单的样例
  • 原文地址:https://www.cnblogs.com/yatesxu/p/5841571.html
Copyright © 2020-2023  润新知