相关疑难解决方法(0)

std :: endl在每个平台上的确切代表是什么?

考虑UNIX,Windows和Mac以及输出流(二进制和文本),

什么std::endl代表,即<CR><LF>,<LF><CR>?或者无论平台/编译器是什么,它总是一样的吗?

我问的原因是我正在编写一个TCP客户端,该客户端会讨论一个期望每个命令结束的协议<CR><LF>.所以我想知道是否使用std::endl"\r\n"在我的流中.

编辑:好的,所以一个冲洗缓冲区而另一个没有.我明白了.但是,如果我将文本输出到文件,'\n'等于<LF>或者是否<CR><LF>在Windows上和<LF>Unix 上进行转换?我还没有看到明确的答案.

c++

11
推荐指数
2
解决办法
2745
查看次数

什么是换行符 - '\n'

这是一个非常基本的概念,但我从来没有能够很清楚地表达出来.我想拼写它,看看我哪里出错了.

如果必须,我将如何定义"换行符".如果我在unix(或windows)中创建一个新文件,那么该文件通过在名为"new line character"的文件中插入一个特殊字符来存储"行尾"信息.如果是这样,它的ascii值是多少?我记得在C程序中,我已经检查了符号'\n'的读取字符.为什么这个令人困惑的2个字符代表行尾字符..

bash$ cat states
California
Massachusetts
Arizona
Run Code Online (Sandbox Code Playgroud)

说,我想在行之间插入一个行间距,并希望输出表格:所需的输出:

California

Massachusetts

Arizona

bash$sed -e 's/\n/\n\n/g' states  does not work.
Run Code Online (Sandbox Code Playgroud)

为什么我不能在这里对待"新行字符"就像我会对待任何其他字符并运行类似上面命令的东西一样.(我知道有人可能会说这是sed的语法问题,但是请一个人解释一下不允许这样做的直觉,这样我就可以摆脱困惑.

同样,在vim编辑器中,我不能使用:%s/\n/\n \n/g.为什么这样?

我是否需要通过在sed和vim中使用反斜杠来进一步逃脱?

谢谢,

Jagrati

c unix vim newline sed

9
推荐指数
3
解决办法
10万
查看次数

标签 统计

c ×1

c++ ×1

newline ×1

sed ×1

unix ×1

vim ×1