gpt4 book ai didi

c++ - cin 会将键盘输入的\n 识别为换行符吗?

转载 作者:太空狗 更新时间:2023-10-29 20:45:26 32 4
gpt4 key购买 nike

我是 C++ 的初学者,所以如果这个问题听起来很愚蠢,我很抱歉..

我编写了这个小程序来帮助我熟悉 cin 的属性:

#include <iostream>
#include <string>
using namespace std;

int main()
{
string next;
cout<<"Enter your input.\n";
cin>>next;
cout<<next;
return 0;
}

当我在键盘输入中输入 \n 时,返回的是 \n

此外,当我将变量 next 从字符串更改为字符并为其提供与上面相同的输入时,我只返回了一个 \

我的问题是:为什么我没有换行返回? cin 不能将键盘输入的 \n 识别为换行符吗?还是只适用于cout

最佳答案

\n 是C++中的转义序列;当它出现在字符常量或字符串文字中时,两个字符序列将替换为表示默认基本编码中新行的单个字符(在现代系统中几乎总是 0x0A)。 C++ 定义了许多这样的转义序列,全部以 \ 开头。

输入映射不同,在许多情况下,取决于设备。当从键盘读取时,大多数系统会缓冲一整行,并且只有在按下 Enter 键时才从中返回字符;他的 Enter 键发送给 C++ 程序的内容可能会有所不同,文件是以文本模式还是二进制模式打开也会有所不同——在文本模式下,C++ 库应与操作系统协商以确保回车键始终产生由 \n 表示的单个字符。 (std::cin 总是以文本模式打开。)键盘驱动程序是否对 \ 做一些特殊的事情取决于驱动程序,但大多数情况下不会。当从键盘输入时,C++ 从不对 \ 做任何特殊的事情(并且 \n 在 C++ 源代码中除了字符串文字和字符常量之外没有特殊含义)。

关于c++ - cin 会将键盘输入的\n 识别为换行符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782682/

32 4 0
文章推荐: c++ - 如何终止 C++ 中的 std::string?
文章推荐: c# - 如何明确一个方法可以抛出异常?
文章推荐: c++ - 关联/随机访问容器
文章推荐: C# IEnumerable 到字符串