首页 > 后端开发 > C++ > 正文

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

Barbara Streisand
发布: 2024-10-28 18:07:29
原创
502 人浏览过

Why Does Turbo C  's

Turbo C 的“cin”限制:仅读取第一个单词

在 Turbo C 中,“cin”输入运算符有一个处理字符数组时的限制。具体来说,它只会读取直到遇到空白字符(例如空格或换行符)。当尝试读取多字输入时,这可能会导致意外行为。

考虑以下 Turbo C 代码:

<code class="c++">#include <iostream.h>

class String {
  char str[100];

public:
  void input() {
    cout << "Enter string: ";
    cin >> str;
  }
  void display() {
    cout << str;
  }
};

int main() {
  String s;
  s.input();
  s.display();
}</code>
登录后复制

如果您运行此代码并输入输入“Steve Hawking, “您会期望输出显示整个字符串。但是,由于“cin”的限制,仅显示“Steve”,因为“cin”在第一个空白字符(空格)处停止读取。

克服限制

要解决此限制,您可以使用替代方法在 Turbo C 中读取字符数组:

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

推荐

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

以上是为什么 Turbo C 的'cin”只读取第一个字?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!