一个接一个地读取数字和字符,直到c ++输入结束

时间:2018-03-31 07:47:39

标签: c++ c++11 input cin

假设我输入了

WARN  [org.apache.zookeeper.ClientCnxn] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection timed out: no further information
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:744)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)

现在我想读取数字变量和字符变量中的第一个数字1的输入[比如说。 var] 1到2之间的空间,下一步它将决定var是否等于' \ n'或不,如果没有,那么再读一次。这次它将读取数字2和2到3之间的空格。类似的管理者,最后数字变量将读取6并且var将读取' \ n'。如var ==' \ n' ,我希望我的程序走下一行并以同样的方式再次阅读。 当输入读数完成时,我希望我的程序终止!! 我知道输入中有多少行。 我想要这个程序的c ++代码。 我自己做了一个,但它没有工作。 这是代码

1 2 34 4 58975 6
2 356 4 5 
3 77 5 89 1

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样:

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>

int main()
{
    std::string line;
    while (std::getline(std::cin, line))
    {
        std::istringstream linestream(line);

        std::vector<int> all_integers_on_line(
            std::istream_iterator<int>(linestream),
            std::istream_iterator<int>());

        // Now the vector all_integers_on_line contains all integer values
        // on the current line. Do something useful with them...
    }
}

参考文献: