C ++ char переменная 2 слова - PullRequest
       2

C ++ char переменная 2 слова

1 голос
/ 28 ноября 2011
#include <iostream>
using namespace std;

void main(){
  char name[20];
  cin>>name;         // when I input "This is" 
  cout<<name<<endl;  // output was "This" 
}

Как это сделать, когда я ввожу «Это», вывод тоже будет «Это», а не только «Это»?

1 Ответ

6 голосов
/ 28 ноября 2011

Вы можете использовать

cin.get( name, 20 );

или

cin.getline(name, 20);

В зависимости от того, хотите ли вы использовать символ новой строки в вашей строке.

РЕДАКТИРОВАТЬ:

Если вы хотите еще больше упростить свой код, вы можете использовать строку вместо массива char, вам не придется беспокоиться о том, что пользователь превысит ваш размер буфера, то есть

string name;
getline(cin, name);
cout << name << endl;

EDIT 2:

Как Дэвид Хеффернан также отметил в комментарии, я должен объяснить, почему это не работает для вас, как ожидалось.Оператор извлечения (operator >>) заканчивается, когда символ пробела - пробел в вашем случае - достигается.Оператор также завершается при достижении нулевого символа или конца файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...