std::cin.getline(f_name, 10)
Если у меня есть, например, следующие заявления:
char f_name[11];
std::cin.getline(f_name,10);
Означает ли это thia: * Объявить строку шириной 11 символов? * Прочитать введенную строку и передать ее в качестве значения для "f_name"?
Благодарю.
2 ответа
Решение
Да вы правы!
char f_name[11];
объявляет массив f_name
с 11
элементы.
std::cin.getline(f_name,10);
запрашивает вводимое значение, которое затем сохраняет его в f_name[11]
,
И да и нет.
char f_name[11];
объявляет массив char
с 11 элементами. На самом деле это не строка - вы можете считать ее "C-строкой", если она имеет NUL ('\0'
) в конце (чего нет).
std::cin.getline(f_name, 10);
Может или не может прочитать всю введенную строку, потому что он читает только до 9 символов. Вам не нужно делать буфер больше, чем значение, данное cin.getline
,
Если у вас нет конкретной причины не использовать std::getline
прочитать строку в C++. Пример ниже.
#include <string>
std::string line;
std::getline(std::cin, line);