7
answers
407views


未解决

RT

linux中文本文件每一行是否都是默认存在一个\n\r,为何我在某些文本文件中每一行结束没找到\n,但是却可以换行?




    1

    有换行了,那就肯定有换行符了。 找不到是方法不对吧~~

    Current score: 0
    [Link] | [回复Ta]
    2

    文件以前是在windows下生成的然后又在linux下打开的把?

    Current score: 0
    [Link] | [回复Ta]
    3

    @柳城:
    通过行输入符发现每次不是读取一行,而是把所有行都读取了,又重新把所有行赋值给一个数组,结果数组中只有一个元素,这个元素就是文件所有的行.....郁闷,当时一直以为自己的程序写的不对,折腾了一下午,结果发现是这种问题......

    Current score: 0
    [Link] | [回复Ta]
    4

    @clownwyb:

    把代码贴出来看看好一点。。 如果是模式匹配的话。 有贪婪的和非贪婪的。。

    Current score: 0
    [Link] | [回复Ta]
    5

    @jian:
    不是的,程序都是在linux下完成的,只是到windows下去检验,发现每行结束只有个CR,没有LF......我才因此想到这个问题

    Current score: 0
    [Link] | [回复Ta]
    6

    @clownwyb:

    CR, LF, CR/LF 回车 换行

    在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符.
    Dos和windows采用回车+换行CR/LF表示下一行,
    而UNIX/Linux采用换行符LF表示下一行,
    苹果机(MAC OS系统)则采用回车符CR表示下一行.
    CR用符号'\r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D;
    LF使用'\n'符号表示, ASCII代码是10, 十六制为0x0A.

    一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件.

    在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错.
    很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.

    Current score: 0
    [Link] | [回复Ta]
    7

    @柳城:
    哦,我大概知道了,是因为每行结束没有LF,结果不识别,因此将所有行当做一个元素吧

    Current score: 0
    [Link] | [回复Ta]

Your Answer

You must be logged in to post a comment.

登陆后可评论。