C ++ cin.getline читает только один символ

Я использую Xcode 4.5, и у меня есть следующий код в моей программе:

char strChar[5];
cin.getline(strChar, 5);
int i = atoi(strChar);

Когда я начинаю пытаться ввести номер, после нажатия первого номера консоль больше не будет принимать ввод (кроме клавиши ввода, в этом случае программа просто сразу возвращает ноль). Очевидно, я хочу принять более одного персонажа, как я могу это сделать?

Спасибо за ответ на мой вопрос

0

Решение

******* ОБНОВЛЕНИЕ *********** 10/04/2012 *********

Apple выпустила обновление, которое исправляет этот вопрос. XCODE 4.5.1 (4G1004)

Это известная ошибка в новейшей версии Xcodes (4.5). Apple знает об этом и работает над патчем. В настоящее время в прессе, нет никакой известной работы. На данный момент вам просто нужно запустить программу в терминале.

** Обратите внимание, что в более новых версиях Xcode инструменты командной строки не устанавливаются автоматически **
Чтобы установить Go Into Xcode -> Настройки -> Загрузки -> Установите инструменты командной строки

Для запуска программ C ++ в терминале:

1.) Откройте Терминал.

2.) Перейдите в правильный каталог

3.) введите «make projectName» минус кавычки

4.) Выполнить программу: «./projectName» минус кавычки

2

Другие решения

Если вы хотите прочитать одну строку, вероятно, проще написать: std :: getline (std :: cin, str), где str имеет тип std :: string.
Ваш пример читает только 5 символов.

Примечание. Если вы хотите прочитать не просто 1 цифру, а несколько цифр в нескольких строках, вы должны поместить все это в цикл.

2

просто примечание: ваш код не считал строку в «str», просто «strChar».

1
По вопросам рекламы [email protected]