我有一个名为 char * panimal_name
的指针。这个指针应该只能接受20个字符,如果用户输入更多,它必须要求用户重新输入。
我已经尝试计算流中的字符数并使用 strlen()
,但我仍然遇到问题。
cout << "Enter Animal Name: ";
cin.ignore();
cin.getline(panimal_name, 20);
如有任何帮助,我们将不胜感激。
编辑:好吧,我只希望它从用户那里获取最多 20 个字符。如果超过 20,则应要求用户重新输入有效输入。但是,在此设置中,它现在弄乱了我下一个输入的流。我使用它而不是 std::string
的原因是我现在正在学习指针。
附言我知道在这种情况下使用字符串可能会更好,以便于使用。
最佳答案
根据 MSDN:
If the function extracts no elements or _Count - 1 elements, it calls setstate(failbit)...
您可以检查该故障位以查看用户输入的数据是否超过了缓冲区允许的数量?
关于c++ - 验证取自 std::cin 的 char * 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9381979/