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 由偏移量計算出來的值會比讀入的值多,也就是數組開大了。此時把數組的最後一位置為終止符,多出來的就變成了屯屯屯屯。
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 由偏移量計算出來的值會比讀入的值多,也就是數組開大了。此時把數組的最後一位置為終止符,多出來的就變成了屯屯屯屯。
相关文章推荐
- linux下读取windows文件遇到的问题
- c++在linux下读取文件遇到的问题
- question:读取以TAB为分隔符CSV文件时遇到的问题
- 关于getprivateprofilestring 读取 windows 文件夹下ini文件异常问题的探究
- BMP文件读取遇到的问题
- C++文件读取及输入问题
- windows 32位 64位 DLL 文件读取问题
- C++中常见的文件读取结尾问题
- c++中读取文件内容应注意的问题
- windows下,c /c++实现磁盘扫描,结合配置文件,读取特定后缀文件目录代码
- 读取属性文件时提示FileNotFound或路径查找不到时遇到的问题备忘
- 关于 IOS 开发中遇到的 读取 cell xib 文件时导致死机的问题。
- 在用POI读取EXCEL文件时遇到的问题
- 使用javac编译java文件和使用javah生成C/C++头文件 遇到找不到类的问题
- 在用VS和Intel C++ Complier编译下面两个移植到Windows下的FFmpeg时遇到的问题
- 用C/C++写上传文件的CGI,遇到问题
- PHP file函数读取文件遇到<***>时的奇怪问题
- windows 32位 64位 DLL 文件读取问题
- Windows环境下编译linux文件遇到的问题
- 解决VMWare 9中提示“windows无法从无人参与应答文件读取<ProductKey>设置问题”