Не можете заставить cin.getline работать помочь, пожалуйста?

0

Пытаясь получить cin для ввода в массив, у меня есть правильный заголовок для него, но всякий раз, когда я запускаю часть cin, он просто пропускает его и ничего не делает, я хочу, чтобы он мог прокручивать строку текста с пробелами.

char a[2000];
cin.getline(a, 2000);
questionsArray[y] = a;

edit: это внутри оператора switch, хотя не видно, как это повлияет на него?

  • 2
    А) Вы должны использовать std::string , B) questionsArray[y] = a; Боюсь, это не делает то, что вы думаете, что делает. И если это в цикле с массивом стека, это небезопасно.
  • 1
    Два случая, когда может показаться, что он пропущен, - это когда поток находится в состоянии ошибки или следующий символ в потоке является новой строкой.
Показать ещё 3 комментария
Теги:
cin
getline

1 ответ

2
Лучший ответ

Вообще говоря, std::getline - лучший выбор, поскольку он работает непосредственно с std::string:

#include <string>   // for std::string, std::getline()
#include <iostream> // for std::cin

// ...
std::string a;
std::getline( std::cin, a );
  • 0
    попробовал это просто кажется ошибка
  • 0
    @bilbsy: Ну тогда в чем же ошибка? Потому что стандартные функции не имеют привычки нарушать.
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню