fopen返回值 fopen函数的用法
大家好,关于fopen返回值很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于fopen函数的用法的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
若执行fopen函数时发生错误,则函数的返回值是
执行fopen函数时发生错误,则函数的返回值是NULL(即0)。文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno中。
fopen函数是打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);
“文件指针名”必须是被声明为FILE类型的指针变量;“文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求;“文件名”是C风格字符串。
扩展资料
函数介绍
例如:
FILE*fp;
fp=fopen("file a","r");
其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE*fphzk
fphzk=fopen("c:\\hzk16","rb");
其意义是打开C驱动器磁盘的根目录下的文件hzk16,按二进制方式进行读操作。两个反斜线“\\”中的第一个表示转义字符,第二个表示根目录。
使用文件的方式共有12种,下面给出了它们的符号和意义。
fopen_s的函数备注
通过打开的文件fopen_s和_wfopen_s不是可共享。如果您需要先设置为可共享一个文件,则使用_fsopen、_wfsopen与适当的共享模式常量——例如,_SH_DENYNO为读/写的共享。
fopen_s函数打开的文件指定的filename._wfopen_s是宽字符版本的fopen_s;参数与_wfopen_s是宽字符字符串。_wfopen_s和fopen_s的行为相同;否则。
fopen_s可以接受的有效执行;在文件系统上的路径 UNC路径和涉及到映射的网络驱动器的路径所接受的fopen_s,只要正在执行代码的系统有权访问该共享,或在执行时映射的网络驱动器。当构造路径fopen_s、不要臆测可用性驱动器、路径或网络共享的执行环境中。您可以使用正斜杠(/)或反斜杠(\),作为路径中的目录分隔符。
这些函数将验证它们的参数。如果pFile,filename,或mode为 null的指针,这些函数生成无效参数异常,如中所述参数验证.
检查返回值,是否函数成功执行该文件的任何进一步操作之前,请参阅。如果发生错误,则返回的错误代码和全局变量errno设置。有关详细信息,请参阅errno、_doserrno、_sys_errlist和 _sys_nerr.
VC下fopen如何支持中文
1、fopen属于c语言函数
vc的话,使用封装好的CFile更方便
2、VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。
boolUTF8ToUnicode(constchar*UTF8,wchar_t*strUnicode)
{
DWORDdwUnicodeLen;//转换后Unicode的长度
TCHAR*pwText;//保存Unicode的指针
//wchar_t*strUnicode;//返回值
//获得转换后的长度,并分配内存
dwUnicodeLen=MultiByteToWideChar(CP_UTF8,0,UTF8,-1,NULL,0);
pwText=newTCHAR[dwUnicodeLen];
if(!pwText)
{
returnfalse;
}
//转为Unicode
MultiByteToWideChar(CP_UTF8,0,UTF8,-1,pwText,dwUnicodeLen);
//转为CString
wcscpy(strUnicode,pwText);
//清除内存
delete[]pwText;
returntrue;
}使用:
wchar_tstrUnicode[260];
UTF8ToUnicode(streamName,strUnicode);
FILE*fid=_wfopen(strUnicode,L"rb");
//FILE*fid=fopen(streamName,"rb");//此为原来的方法,遇到中文不能正确打开
关于fopen返回值,fopen函数的用法的介绍到此结束,希望对大家有所帮助。