2016-11-15 16 views
-3

ユーザーが終了すると何らかの理由で停止しませんか?私が間違っていることは何ですか? C++whileループの内部でgetlineの作業を行いますか? C++

vector<string> v; 
while(true) 
{ 
    cout << "Enter a string (quit to stop)" << endl; 
    getline(cin,names); 
    if(names=="quit")break; 
    v.push_back(names); 
    addFullName(names); 
} 

void addFullName(string str) 
{ 

    string word = " "; 
    int pos = str.find(word); 
    string s2; 
    string s3 = str.substr(pos+word.length()); 
    string s4 = str.substr(pos = 0, pos); 
    s2 += s3 + ", " + s4; 
    v.push_back(s2);  
} 
+8

名前は何ですか? –

+0

文字列変数。 –

+4

あなたの質問を更新し、そこに関連するすべての情報を記入してください。これについて読む:[MCVE] –

答えて

1

はい、whileループ内にstd::getlineを使用できます。実際には、それをwhileループのためのセンチネルとして使うことができます。それが必要、namesstd::stringであれば、あなたの問題については

std::string line; 
std::ifstream fin{"some_file.txt"}; 

while(std::getline(fin, line)) { 
    std::cout << line << '\n'; 
} 

:あなたは、ファイルからの読み込みをしている場合たとえば、以下は、すべての行を読み込みます(と、それを印刷)EOFまで作業。そうでない場合(つまり、char *)、バッファサイズを含める必要があります。ただし、できる場合はstd::stringをご利用ください。

関連する問題