|
1鱼币
还是上一个帖子的题,当输入为CCCCCCCCCCCC的时候,程序取第一个C而不报错,是否有可能实现当输入CCCCC或FFFFF时不报错
typeIn为char类型
do {
std::cout << "请以【C】或【F】的形式输入温度单位: " << std::endl;
std::cin >> typeIn;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
} while (
(typeIn != 'C') && (typeIn != 'c') &&
(typeIn != 'F') && (typeIn != 'f')
);
了解你的需求了。为了实现当输入多个字符时提示重新输入,你可以使用 std::string 类型读取输入,并检查输入字符串的长度。以下是一个修改后的示例:
- #include <iostream>
- #include <limits>
- #include <string>
- int main() {
- char typeIn;
- std::string input;
- do {
- std::cout << "请以【C】或【F】的形式输入温度单位: " << std::endl;
- std::getline(std::cin, input);
- // 检查输入字符串的长度是否为 1
- if (input.length() != 1) {
- std::cout << "无效输入,请重新输入一个单一字符。" << std::endl;
- continue;
- }
- typeIn = input[0];
- } while (
- (typeIn != 'C') && (typeIn != 'c') &&
- (typeIn != 'F') && (typeIn != 'f')
- );
- // 继续你的其他代码
- return 0;
- }
复制代码
在这个版本中,程序使用 std::getline() 读取一整行输入,然后检查输入字符串的长度。
如果长度不为 1,程序将提示用户重新输入一个单一字符。只有当输入字符串长度为 1 且字符为 'C'、'c'、'F' 或 'f' 之一时,循环才会结束。
|
最佳答案
查看完整内容
了解你的需求了。为了实现当输入多个字符时提示重新输入,你可以使用 std::string 类型读取输入,并检查输入字符串的长度。以下是一个修改后的示例:
在这个版本中,程序使用 std::getline() 读取一整行输入,然后检查输入字符串的长度。
如果长度不为 1,程序将提示用户重新输入一个单一字符。只有当输入字符串长度为 1 且字符为 'C'、'c'、'F' 或 'f' 之一时,循环才会结束。
|