相关疑难解决方法(0)

在C中丢弃马车返回?

我希望能够读取Windows文本文件,在内存中修改它,然后用修改后的数据覆盖旧文件.但是,fread似乎并不存储我的Windows文本文件中存在的回车符,这会在我写旧数据时丢失.我找不到任何似乎有这个问题的人.

以下是一些演示此问题的示例代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE* textFile;
    long fileSize;
    char fileCharacterBuffer[100];

    int i;
    for(i = 0; i < 100; i++)
    {
        fileCharacterBuffer[i] = '\0';
    }

    textFile = fopen("./Test.txt", "r+");

    fseek(textFile, 0L, SEEK_END);
    fileSize = ftell(textFile);
    fseek(textFile, 0L, SEEK_SET);

    fread(fileCharacterBuffer, 1, fileSize, textFile);
}
Run Code Online (Sandbox Code Playgroud)

测试文件:

3
112
REd
110
green

#5/09/2014
5087 - 5/6/2014
Run Code Online (Sandbox Code Playgroud)

它的十六进制转储显示其EOL是\ r \n:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  33 0D …
Run Code Online (Sandbox Code Playgroud)

c carriage-return fread

4
推荐指数
1
解决办法
1995
查看次数

标签 统计

c ×1

carriage-return ×1

fread ×1