gpt4 book ai didi

c++ - 在字符串中输入换行符

转载 作者:行者123 更新时间:2023-11-28 04:07:54 26 4
gpt4 key购买 nike

在这两种情况下,我输入 \n 作为用户输入(在字符串中),我将 \n 作为程序中字符串的一部分本身(无用户输入):

string str1;
cin>>str1; //case 1 - \n entered as the part of the input

string str="hello\n"; //case 2

如果 1 \n 被认为是输入字符串的一部分,而如果 2 它被认为是换行符 - 为什么?

最佳答案

Escape sequences仅是编译器时文字。当您的编译器在字符串中遇到\时,它会在之后查找模式以确定值。当您从控制台读入时,一次读取一个字符。大多数调试器会将输入的字符串显示为 "hello\\n",或分解为单个字符:

'h','e','l','l','o','\\','n' 

当您在代码中手动设置字符串时,例如string str = "hello\n",编译器会识别转义序列并将其视为单个字符'\n'。这允许程序员在不打印字符的 ASCII 值的情况下拥有打印字符的速记。另一方面,用户有一个输入按钮可以方便地添加换行符,并且程序通常面向具有人类可读的界面(即,如果我键入一个“\”字符,我希望它是一个“\”如果我没有使用计算机的经验)

关于 cin 的另一条说明是它使用换行符和其他空格来区分各种输入。函数 getline 用于字符串输入以解决此问题,但流提取是从一个空格到另一个空格完成的,因此它与所有数据类型(int、float、char 等)一致

关于c++ - 在字符串中输入换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58366141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com