fgetc () для обработки введенных символов - char за char.
Функция возвращает целочисленное значение введенного символа.
Мне нужно проверить это:
- Каждый город не должен превышать 30 символов
- В каждой строке есть символ "-" (тире) (разбивая всю строку на два города)
Я определил 31-int-массив и одно целое число для подсчета символов. Когда пользователь вводит «-», мне нужно сохранить символы в виде строки в другой массив (на самом деле карта).
printf("Enter route (city - city):\n");
char town[31];
int character, charsOnRow = 0, i = 0;
map<int, string> route;
while (!feof(stdin)) {
character = fgetc(stdin);
if (character != '-' && character != '\n') {
if (charsOnRow < 30) {
town[charsOnRow] = character;
charsOnRow++;
} else {
printf("Invalid input.\n");
}
} else if (route.size() == 0 && character == '\n') {
printf("Invalid input.\n");
} else {
town[charsOnRow] = '\0';
route[i] = town;
charsOnRow = 0;
}
}
Таким образом, пример ввода будет следующим:
Syracuse - Utica
Binghamton - Syracuse
Binghamton - Utica
Как мне это исправить и сохранить массив int в map<int, string>
?