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);
Другие вопросы по тегам