C语言中的fopen()函数打开文件时,文件名有什么限制吗?

C语言中的fopen()函数打开文件时,文件名有什么限制吗?为什么当我的文件名包含点或者下划线时,打开操作总是失败的?万分感激。

文件名必须是一个C字符串,它是符合操作系统标准的合法文件,含.和下划线不会错。
如:
FILE *fin = fopen("data_.dat", "r");

FILE *fout = fopen("C:\\temp\\o_data.dat", "w");

由于\为转义操作符,故目录要用两个\\
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-13

文件主名和扩展名可以使用的字符是:

    英文字母:A—z(大小写等价)

    数 字:0—9

    汉 字

    特殊符号:$#&@()-[]^~等。

    各种控制字符和下列字符不能用在文件名中:< > / \ | : " * ?     //这些字符已做它用


文件名字母大小写的区分:

    DOS下文件名不区分大小写。

    在Windows系统下,显示区分大小写,读写操作时不区分。

    在类Unix/Linux系统下,区分字母大小写。


文件名长度的限制:

    DOS下文件名长度应为 8.3 即8位文件名3位扩展名。

    在Windows系统下,可以多个扩展名,以最后一个为准,文件名长度255。

    在类Unix/Linux系统下,文件名长度255,带路径的长度1024,也有系统4096。


文件名可以直接写进去函数里,也可以放在变量里:

FILE *fp; 
char namein[]="abc.txt";
fp=fopen(namein,"r");
或 fp=fopen("abc.txt","r");


文件名若带路径,单反斜杠要写成双反斜杠,例如:

char namein[]="C:\\path\\abc.txt";

第2个回答  2007-01-04
文件名没有限制,含点和下划线也没有问题,用引号引起来即可,路径中的“\”要写成"\\"或者“/”
第3个回答  2007-01-04
没限制~
相同目录下的文件即可
不带后缀
xx
fopen("xx",fp);
带的
text.txt
fopen("text.txt",fp)
第4个回答  2007-01-04
没有把,不过转义字符应该不能用

C语言中的fopen()函数打开文件时,文件名有什么限制吗?
文件名必须是一个C字符串,它是符合操作系统标准的合法文件,含.和下划线不会错。如:FILE *fin = fopen("data_.dat", "r");FILE *fout = fopen("C:\\\\temp\\\\o_data.dat", "w");由于\\为转义操作符,故目录要用两个\\\\

c语言中,fopen(“文件名”,“打开方式”)中的文件名可以是变量吗?
文件名若带路径,单反斜杠要写成双反斜杠,例如:char namein[]="C:\\\\path\\\\abc.txt";长路径可用8字母格式缩写:C:\\Documents and Settings\\Wang\\...缩写:char namein[]="C:\\\\Docume~1\\\\Wang\\\\abc.txt";二进制文件打开方式用rb:fp=fopen("abc.txt","rb"); 或:fp=fopen(namein,"r...

c 语言open()函数
fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式)其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。例如:FILE *fp;fp=("file a"...

c语言 文件操作 fopen()
当然有!路径不对,比如向A盘创建文件,却不存在A盘;向X盘创建文件却空间太小,以及文件名书写不符合规范等等。

请问c语言的fopen(filename,"w")对filename有什么要求?
你的filename没有初始化,filename[strlen(filename)-1]='\\0';这句是废话,因为strlen本来就是读到'\\0'结束的

C语言fopen函数中文件打开方式(参数值)
C语言fopen函数用于打开文件。函数原型:FILE * fopen(const char * path,const char * mode);参数:path 字符串类型,表示文件所在的路径,包括文件名 mode 打开文件的模式、返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。mode:...

c语言中,fopen(“文件名”,“打开方式”)中的文件名可以是变量吗?谢谢...
从文件中读取一个数 include <stdio.h> include <stdlib.h> void main(void){ int a;char str[100];\/\/储存文件名的数组 FILE *fp;printf("请输入文件名:");gets(str);if (NULL == (fp = fopen(str, "r")))\/\/注意这的表达形式 { printf("文件打开失败!\\n");exit(0);} whil...

C语言Fopen函数的用法
C语言中的fopen函数是一个强大的工具,用于以特定方式打开文件。其基本调用形式是:`FILE *fp = fopen("文件名", "使用文件方式");`其中,fp是一个指向FILE类型的指针,"文件名"是需要操作的文件的路径,而"使用文件方式"决定了操作类型,如读取、写入、追加或二进制模式。例如,`fp = fopen("...

C语言 fopen函数 读取文件出错 怎么回事
思路没有错。估计是文件名长度问题。如果你用的是早期的编译平台,文件主名不得长于8个字符,扩展名不得多于3个字符。批处理用*.dat就行啊……

在C语言fopen()函数中
r 打开只读文件,该文件必须存在。r+具有读写属性,从文件头开始写,保留原文件中没有被覆盖的内容;w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。wb 只写打开或新建一个二进制文件;只允许写数据。

相似回答