”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么 Turbo C++ 的“cin”只读取第一个字?

为什么 Turbo C++ 的“cin”只读取第一个字?

发布于2024-11-05
浏览:788

Why Does Turbo C  \'s \

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 中读取字符数组:

  1. cin.getline(str, sizeof str);
    此方法将整行输入(包括空白字符)读取到指定的 char 数组中。
  2. std::getline(cin, str);
    如果您有权访问标准库,则可以使用此方法将整行读入字符串对象,这提供了更大的灵活性。
  3. 实现你自己的字符串类:
    你可以定义自己的字符串类,更高效地处理输入和输出。

推荐

推荐现在的方法是使用现代 C 编译器和标准库。这提供了更可靠、更高效的输入处理,包括读取整行输入的能力。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3