【发布时间】:2011-01-17 17:07:12
【问题描述】:
fgetc() 用于处理输入的字符 - 逐个字符。 函数返回输入字符的整数值。
我需要检查这些:
- 每个城镇不得超过 30 个字符
- 每行都有一个“-”(破折号)字符(将整行分成两个城市)
我定义了 31-int-array 和一个整数来计算字符。当用户输入“-”时,我需要将字符作为字符串保存到另一个数组(实际上是映射)。
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-array 保存到 map<int, string>?
【问题讨论】:
-
您已经声明了一个 char 指针数组。我不认为那是你想要的
标签: c++ string int validation