首页 >后端开发 >C++ >为什么 `cin >> str` 只提取 C 中的第一个单词?

为什么 `cin >> str` 只提取 C 中的第一个单词?

Susan Sarandon
Susan Sarandon原创
2024-10-27 16:47:30947浏览

Why does `cin >> str` 只提取 C 中的第一个单词? 
> str` 只提取 C 中的第一个单词? " />

cin 仅提取 C 语言中的第一个单词

在提供的代码中,cin 使用 cin >> str; 仅捕获第一个单词,在处理包含多个单词的输入时会导致问题,这是由于 cin 在 Turbo C 中的操作方式,在遇到 >>.

解决方案:

要将完整的行提取到字符数组中而不是单个单词,请将 cin 语句修改为:

或者,如果使用更现代的C 环境并使用字符串,您可以将 char 数组替换为 std::string 并利用 getline() 读取输入,如下所示:
<code class="c++">cin.getline(str, sizeof str);</code>

<code class="c++">getline(cin, str);</code>
其他注意事项:

强烈建议更新您的编译器,因为 Turbo C 4.5 已经明显过时,并且不支持现代 Visual Studio Express 或其他现代编译器以获得更好的兼容性。

以上是为什么 `cin >> str` 只提取 C 中的第一个单词?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn