Как получить строку ввода от пользователя с заранее заданной длиной строки в C ++? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь получить строку длиной 8 символов от пользователя.Пользователь должен вводить строку постоянно.Как только строка достигает 8 символов, она должна перейти на следующую строку кода.

Я уже пробовал с массивами и циклами.Но, он требует, чтобы пользователь нажимал ввод после получения каждого символа.

string str;
int b;
std::cin>>str.length(8);

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Это можно сделать разными способами.

Попробуйте это

std::string str;
str.resize(8);
for (int i = 0; i < 8; ++i)
    std::cin >> str[i];

Или

std::string str;
str.resize(8);
for (int i = 0; i < 8; ++i)
    str[i] = std::cin.get();

Или

std::string str;
str.resize(8);
std::cin.read(&str[0], 8);

Или

char arr[9];
std::cin >> std::setw(9) >> arr;
std::string str(arr, 8);
0 голосов
/ 09 февраля 2019

Это можно сделать следующим образом

char str[100], input;
int idx = 0;
while( scanf("%c", &input ) == 1 )  { 

    str[idx++] = input;
    if( idx >= 8 ) break; // or your desire length of string

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...