3

C++ または Java を使用して、不明な数の入力を読み取る必要があります。入力には、1 行に正確に 2 つの数字があります。入力はファイルからではなくコンソールから行われるため、cinorを使用する必要があります。System.in Scanner

入力例:

1 2

3 4

7 8

100 200

121 10

値をベクトルに格納したい。数字のペアがいくつあるかわかりません。while数値を読み取ってベクトルに入れるループを設計するにはどうすればよいですか?

4

5 に答える 5

6

C ++では慣用句を使用できますstd::copy:(仮想化された入力文字列でここで機能することを確認してください

std::vector<int> vec;
std::copy (
    std::istream_iterator<int>(std::cin), 
    std::istream_iterator<int>(), 
    std::back_inserter(vec)
);

このように、整数が入力ストリームから読み取られるたびに、入力が不良であるかEOFであるかに関係なく、読み取りに失敗するまでベクトルに追加されます。

于 2012-10-04T04:11:12.000 に答える
4

Java:

Scanner sc = new Scanner(System.in);
String inputLine;
while(sc.hasNextLine()) {
  inputLine = sc.nextLine();
  //parse inputLine however you want, and add to your vector
}
于 2012-10-04T04:10:15.330 に答える
0

私が見つけた唯一の回避策:

import java.io.*;

class Solution {
    public static void main(String args[] ) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int i=1 ;
        String line =br.readLine();
        while(line.length()>0){
            System.out.println(line);
            line = br.readLine();
        }    
    }
}
于 2015-08-21T08:23:17.907 に答える