当前位置:首页 » 编程语言 » c语言文件不写盘符
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言文件不写盘符

发布时间: 2023-03-21 00:32:23

‘壹’ c语言中怎么确定信息所写入文件在硬盘中的位置呢最起码盘符应该知道吧

如果是windows盘符自然就包含在路径中了,注意如果相对路径,那么文件夹所在的盘符就是打开文件的盘符。Linux一般没有盘符一说。位置是你打开文件时执行的函数锁定的,如果你想了解更多可以看一下使用的库的头文件,源码更好,这类函数中最基本的当然就是fopen了。fopen把信息都放到了一个结构体中,其实你可以自由查看,甚至更改,不过注意有时候结果是很自由的,比如当写的文件的位置被改成磁盘的逻辑0位置。

‘贰’ C语言打开文件的路径问题

文件路径分为绝对路径和相对路径。

绝对路径:是从盘符开始的路径,形如

D:\Project\Data\input.txt

相对路径:是从当前路径开始的路径,假如当前路径为D:\Project
要描述上述路径,只需输入
Data\input.txt
实际上,严格的相对路径写法应为
.\Data\input.txt
其中,.表示当前路径,在通常情况下可以省略,只有在特殊的情况下不能省略。
与.类似..为父目录,也即上一层目录。

另外,还有一种不包含盘符的特殊绝对路径,形如
\windows\system32\cmd.exe
无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。

‘叁’ 在C语言读文件时,如何说明是当前目录

这个如果是在c语言中是根据你读文件那个函数里定义的,如果那里你用绝对地址那你放那都可以,如果用相对地址就放到你c编译器的根目录下面,或者子目录,但是子目录需要在里面指出

‘肆’ C语言中定义的__FILE__使用,如何只出现该文件名,而不显示路径

可以用宏定义来实现去除文件名中的路径名。

因为windows和linux下,文件名中的路径分隔符号不同,windows中是"/",而linux中是"/",所以,采用的宏不同:

#include<string.h>//strrchr()函数所需头文件
windows:
#definefilename(x)strrchr(x,'\')?strrchr(x,'\')+1:x
linux:
#definefilename(x)strrchr(x,'/')?strrchr(x,'/')+1:x

调用:
printf("filename:%s ",filename(__FILE__));

相关函数说明:

函数原型:char *strrchr(const char *s, int c);

函数功能:The strrchr() function returns a pointer to the last occurrence of the character 【c】 in the string 【s】.函数返回一个指向最后一次出现在字符串s中的字符c的位置指针,如果c不在s中,返回NULL。

PS:linux中提供了相应的函数:basename(s),用来获取不带路径的文件名。

‘伍’ C语言如何访问没有盘符的U盘分区

\\.\PhysicalDrive0

打开第一个物理驱动器

\\.\PhysicalDrive2

打开第三个物理驱动器

‘陆’ 请问啊,C语言里,fopen、fread与fwrite的参数中,要求文件名, 用写盘符吗 写绝对路径吗

绝对路径,相对路径都可以,但是要注意用转义字符来写反斜杠,"\\"这样子

‘柒’ C语言如何判断盘符是否可读写★★★

我一般用尝试写入的方法,比如用FILE创建一个文件启郑塌,如果创建失败,并Getlasterror为硬盘不足,丛败于是我就悄圆判断它为不可写入。