C ++ Stringstream为变量赋值错误?

时间:2013-12-31 04:19:05

标签: c++ string formatting integer stringstream

我这里有这段代码

    cout << "Player 1 enter coordinate" << endl;
    int x, y;
    string s;
    cin >> s;
    stringstream is(s);
    is >> x >> y;
    cout << x << " " << y << endl;

当在终端输入“1 2”时,cout打印出来:

Player 1 enter coordinate
1 2  //input

1 4197944 //output

我做错了吗?

2 个答案:

答案 0 :(得分:1)

字符串's'仅检索第一个单词'1'。您可以直接使用标准输入流,而不是使用stringstream打扰。

cin >> x
cin >> y

答案 1 :(得分:1)

我必须使用getline()而不是cin,因为cin在空格处结束。

修正版:

    std::cout << "Player 1 enter coordinate" << std::endl;
    int x, y;
    std::string s;
    std::getline(std::cin,s);
    std::stringstream is(s);
    is >> x >> y;
    std::cout << x << " " << y << std::endl;