为啥很多语言中字符串常量中间不允许换行
那你有一个很长很长的单行文本你打算怎么办?或者你在网上到处 copy-paste 结果因为换行位置不同导致结果错误这不是很尴尬嘛
■网友
设计权衡。一方面来说语言的使用者相比输入换行字符串,更经常出现的情况是忘记打了后边的引号,或者删掉一半的引号,这样到了代码的结尾都变成字符串了。另外,这样设计的话parser好写,直接判断到行末尾就知道这个语句写错了(没写后边的引号)。然后换行符设计成转义符。还有,其实换行和回车换行是平台相关的的,然后直接默认让string支持换行那么你的代码跨平台会出问题,比如OSX(\\r)下的到Windows(\\r\)上会变成一行,windows到linux上的话结尾又会多个不可显示字符。而且这种行内带换行语句在跨平台的时候版本管理工具和编辑器要不要帮你修改行末换行符又是个坑。其实C++的 raw string更多是方便用户写反斜杠的——在输入大量转义符的时候不用写成连续两个反斜杠,至于支持多行字符串,应该顺带的。手机码字,语言不是很清晰,见谅。
■网友
C语言不知道,C++可以。#include\u0026lt;stdio.h\u0026gt;int main(){\tprintf("now,\\it\u0026#39;s a new line.");\tprintf("\");\tprintf(R"(now,it\u0026#39;s a new line.)");}g++ -std=c++11 a.cpp \u0026amp;\u0026amp; ./a.out输出以下内容now,it\u0026#39;s a new line.now,it\u0026#39;s a new line.
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
