Turbo C 的“cin”限制:仅读取第一个单词
在 Turbo C 中,“cin”输入运算符有一个处理字符数组时的限制。具体来说,它只会读取直到遇到空白字符(例如空格或换行符)。尝试读取多字输入时,这可能会导致意外行为。
请考虑以下 Turbo C 代码:
#include
class String {
char str[100];
public:
void input() {
cout > str;
}
void display() {
cout 如果运行此代码并输入“Steve Hawking”,您会期望输出显示整个字符串。但是,由于“cin”的限制,仅显示“Steve”,因为“cin”在第一个空白字符(空格)处停止读取。
克服限制
要解决此限制,您可以使用替代方法在 Turbo C 中读取字符数组:
- cin.getline(str, sizeof str);
此方法将整行输入(包括空白字符)读取到指定的 char 数组中。 - std::getline(cin, str);
如果您有权访问标准库,则可以使用此方法将整行读入字符串对象,这提供了更大的灵活性。 - 实现你自己的字符串类:
你可以定义自己的字符串类,更高效地处理输入和输出。
推荐
推荐现在的方法是使用现代 C 编译器和标准库。这提供了更可靠、更高效的输入处理,包括读取整行输入的能力。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3