您的位置:首页 > 编程语言 > C语言/C++

Windows下 C++ 读取文件时遇到的问题

2018-03-27 01:24 459 查看
```
static char* readShaderSource(const char* shaderFile)
{
FILE *fp;
fopen_s(&fp, shaderFile, "r");

    if ( fp == NULL ) { return NULL; }
    fseek(fp, 0L, SEEK_END);
    long size = ftell(fp);
    fseek(fp, 0L, SEEK_SET);
    char* buf = new char[size + 1];
    fread(buf, 1, size, fp);

    buf[size] = '\0';
    fclose(fp);
    return buf;
}
```
因為windows換行符實際上是`\r\n`兩個字節,因此最後 size 由偏移量計算出來的值會比讀入的值多,也就是數組開大了。此時把數組的最後一位置為終止符,多出來的就變成了屯屯屯屯。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: