code block与VC++下相对路径的不同写法
2014-01-18 13:22
387 查看
最近想不借用超级宝典第五版的封装类自己完整写一个着色器,但是一直读取shader文件失败,原因在于相对路径的写法错误。
codeblock 下如下写即可读取
当前目录的写法为。
VC++2008则不同。
当前目录的写法为
源代码如下:
如果访问上层文件则一次后退即可。
更进一步请看如下两篇帖子:
codeblock 下如下写即可读取
#include <stdio.h> #include <stdlib.h> char *ReadText(char *fn); int main() { char *ff; ff=ReadText("first.vert"); printf("%s\n",ff); return 0; } char *ReadText(char *fn) { FILE *fp; char *content = NULL; int count=0; if (fn != NULL) { fp = fopen(fn,"rt"); if (fp != NULL) { fseek(fp, 0, SEEK_END); // 重定位流(数据流/文件)上的文件内部位置指针 // int fseek(FILE *stream, long offset, int fromwhere); count = ftell(fp); // long ftell(FILE *stream); 返回当前文件指针,是int类型 rewind(fp); // void rewind(FILE *stream); 将文件内部的位置指针重新指向一个流(数据流/文件)的开头 if (count > 0) { content = (char *)malloc(sizeof(char) * (count+1)); // extern void *malloc(unsigned int num_bytes); count = fread(content,sizeof(char),count,fp); // 从一个流中读数据 //函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); // buffer // Storage location for data. // // size // Item size in bytes. // // count // Maximum number of items to be read. // // stream // Pointer to FILE structure. content[count] = '\0'; } fclose(fp); } } return content; }
当前目录的写法为。
ff=ReadText("first.vert");
VC++2008则不同。
当前目录的写法为
ff=ReadText("../first.vert");
源代码如下:
#include <stdio.h> #include <stdlib.h> char *ReadText(char *fn); int main() { char *ff; ff=ReadText("../first.vert"); printf("%s\n",ff); getchar(); return 0; } char *ReadText(char *fn) { FILE *fp; char *content = NULL; int count=0; if (fn != NULL) { fp = fopen(fn,"rt"); if (fp != NULL) { fseek(fp, 0, SEEK_END); // 重定位流(数据流/文件)上的文件内部位置指针 // int fseek(FILE *stream, long offset, int fromwhere); count = ftell(fp); // long ftell(FILE *stream); 返回当前文件指针,是int类型 rewind(fp); // void rewind(FILE *stream); 将文件内部的位置指针重新指向一个流(数据流/文件)的开头 if (count > 0) { content = (char *)malloc(sizeof(char) * (count+1)); // extern void *malloc(unsigned int num_bytes); count = fread(content,sizeof(char),count,fp); // 从一个流中读数据 //函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); // buffer // Storage location for data. // // size // Item size in bytes. // // count // Maximum number of items to be read. // // stream // Pointer to FILE structure. content[count] = '\0'; } fclose(fp); } } return content; }
如果访问上层文件则一次后退即可。
../name1/*.txt
更进一步请看如下两篇帖子:
http://blog.csdn.net/sszgg2006/article/details/8447176 http://bbs.csdn.net/topics/80326375[/code]
相关文章推荐
- VC创建相对路径目录
- 相对路径和绝对路径的写法总结
- JAVA 工程中相对路径的写法
- VC中获取文件的相对路径与绝对路径
- VC2010配置附加路径(工程相对路径)
- java 路径的不同写法
- php相对路径的写法
- VC中的相对路径问题
- js css 相对路径的写法
- 服务器控件与html控件中相对路径的写法区别
- vc调试时默认的相对路径
- 关于java中路径的思考:相对路径,以及在不同场景下的区别 classpath
- HTML有2种路径的写法:绝对路径和相对路径
- VC通过相对路径获取绝对路径
- VC 路径问题:相对、绝对路径
- CentOS 6.5 Nginx 的编译安装、以及让nginx 支持 SSI 相对路径写法
- vc++中文件路径写法
- HTML有2种路径的写法:绝对路径和相对路径
- HTML相对路径相对目录--上级目录及下级目录的写法
- IE6/7中getAttribute获取href/src 属性(相对路径0值与其它浏览器不同