gpt4 book ai didi

c++ - 将字符从输入转换为字符串

转载 作者:行者123 更新时间:2023-11-30 04:36:14 26 4
gpt4 key购买 nike

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>

最佳答案

您有技术错误(无效的 C++)和逻辑错误。

一个主要原因是逐字符输入的复杂性。

您可能会发现使用 C++ 级别的 i/o 更容易:声明一个 std::string变量来保存完整的输入,使用std::getline读取它.

干杯,

关于c++ - 将字符从输入转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com