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

Използвам Xcode 4.5 и имам следния код в моята програма:

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

Когато започна да се опитвам да въведа число, след натискане на първото число, конзолата няма да приеме повече въвеждане (освен клавиша за въвеждане, в който случай програмата просто връща нула веднага). Очевидно искам да приема повече от един знак, как мога да постигна това?

Благодаря за отговора на въпроса ми


person prince    schedule 22.09.2012    source източник


Отговори (3)


*******UPDATE*********** 10/04/2012*********

APPLE ПУСКА АКТУАЛИЗАЦИЯ, КОЙТО РЕШИ ТОЗИ ПРОБЛЕМ. XCODE 4.5.1 (4G1004)

Това е известна грешка в най-новата версия на Xcodes (4.5). Apple знае за това и работи върху корекция. Понастоящем по време на пресата няма известна заобиколка. Засега просто трябва да стартирате програмата в терминал.

** Забележете, че в по-новите версии на Xcode инструментите на командния ред не се инсталират автоматично ** За инсталиране отидете в Xcode -> Предпочитания -> Изтегляния -> Инсталирайте инструментите на командния ред

За да стартирате C++ програми в терминал:

1.) Отворете терминала.

2.) Навигирайте до правилната директория

3.) напишете "make projectName" без кавичките

4.) Изпълнете програмата: "./projectName" минус кавичките

person HashHazard    schedule 24.09.2012
comment
Най-доброто, с което мога да се справя, надявам се, че Apple бързо ще се разреши, определено е болка..хаха - person HashHazard; 25.09.2012
comment
@JamesPrince Изтеглете актуализацията - person HashHazard; 05.10.2012

Ако искате да прочетете един ред, вероятно е по-лесно да напишете: std::getline(std::cin, str), където str е от тип std::string. Вашият пример чете само 5 знака.

Забележка: Ако искате да прочетете не само 1 число, а куп числа на няколко реда, трябва да поставите всичко това в цикъл.

person Aleph    schedule 22.09.2012
comment
Имам същото поведение, ако използвам този код, конзолата основно замръзва след първия знак (но xcode не се срива или нещо подобно) - person prince; 22.09.2012

само забележка: вашият код не прочете низа в "str", а само в "strChar".

person Whistler    schedule 22.09.2012
comment
Просто си играех с кода и в крайна сметка изглеждаше така, ще го променя, за да има повече смисъл. - person prince; 22.09.2012