读书人

关于C语言文件有关问题

发布时间: 2012-04-08 14:38:30 作者: rapoo

关于C语言文件问题
编写了一个很小的程序,希望程序运行时候始终打开程序所在的工程下面的文件夹里面的文件夹里面的文件。fopen()函数必须要输入绝对和相对路径,但是文件在工程下面的文件夹里面,用什么方法可以实现呢?就是说在把工程拷贝到其他盘符也能准备打开工程下面的文件夹里面的文件,现在这个如何定位问题很郁闷,用主函数可以获得当前程序EXE的路径,但是不停的要转字符串很麻烦。有没有简单的方法 调用SYSTEM函数也可以!

[解决办法]
相对路径啊
../表示上一层
[解决办法]
你的程序放在哪个目录, 那么程序跑起来之后的进程就在那个目录, 想用相对路径打开文件就用..就可以往上跳了.
[解决办法]
你可以使用system("dir /B >>D:\\1.txt")这样就可以把程序对应的文件夹内的所有路径存入到D盘下的一个文件中,在每行读入,进行一个字符串判断,找出文件夹,将文件夹名加入到str="dir ";strcat(str,文件夹名) system(str)即可打印了
[解决办法]
./表示本层,
../表示上一层
以上两种都是相对路径,可以依次类推
一般程序里面都是用字符串形式写路径
eg:
"../1.txt" //上一层目录中的1.txt文件
"./1.txt" //当前目录中的1.txt文件

windows下的绝对路径写法何以参考4楼
linux下的绝对路径从'/'开始
eg:
"/root/1.txt" //root目录下的1.txt文件
[解决办法]
假如说米在工程目录下面有一个abc的文件夹,里面有一个123.txt的文件,要打来他,直接写

FILE *fp = fopen( "\\abc\\123.txt", "a" );
jiu可以了

[解决办法]

探讨
谢谢啊,为什么你们叫..为上一层目录呢?不是应该是下一层嘛?

读书人网 >C语言

热点推荐