簡體   English   中英

無法讀入兩個用空格隔開的字符串

[英]Can't Read in two strings separated by a space

我試圖讀取兩個字符串,並用空格隔開。

CIN >>一; CIN >> B;

從技術上講這應該起作用。 我也使用過getline,但是它似乎不起作用。 它讀入某些輸入,而卡在其他輸入上

編輯:添加了C ++標記,保留了C標記,因為它是原始帖子的一部分。

這個:

#include <iostream>
#include <sstream>

int main()
{
    std::istringstream iss("wrgl zrgl");
    std::string s1, s2;
    iss >> s1 >> s2;
    std::cout << '"' << s1 << "\" \"" << s2 << "\"\n";
    return 0;
}

在我的計算機上編譯,運行並打印"wrgl" "zrgl"

我也使用過getline,但是它似乎不起作用。 它讀入某些輸入,而卡在其他輸入上

我正在嘗試回答這一部分。 cin是否正在使用Enter鍵進行第二次輸入?

您可以嘗試以下方式

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{

    cout << "Enter name1 :";
    string name1;
    getline(std::cin, name1);


    cout << "Enter name2 :";
    string name2;
    getline(std::cin, name2);

    if (name2.empty()) getline(std::cin, name2);

    cout << endl << "Input Name1  :" << name1 << endl << "Input Name2 :" << name2;

     return 0;
}

或者您可以使用endl刷新流

void GettingTwoStrings2()
{
    cout << "Enter name1 :" << endl;
    string name1;
    getline(std::cin, name1);


    cout << "Enter name2 :" << endl;
    string name2;
    getline(std::cin, name2);

    cout << endl << "Input Name1  :" << name1 << endl << "Input Name2 :" << name2 << endl;;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM