用c语言打开文件
当我们使用C语言编写程序时,经常需要对文件进行操作。那么如何实现呢?我来和大家分享一下。
工具/材料
阳光文本
01
打开Sublime Text软件,新建一个C语言文件,然后导入到C语言库中,如下图所示。
02
接下来新建一个C语言的main函数,所有对文件的操作都将在main函数中进行,如下图所示。
03
接下来调用C语言的fopen函数打开文件,如下图所示。
04
打开文件后,可以通过fgetc函数读取文件内容,如下图所示。
c语言库函数-1的打开文件函数 C语言标准库中用来打开文件的函数是fopen()。
函数原型:文件
*
fopen(常量
茶
*
路径,常数
茶
*
模式);
参数说明:path表示要打开的文件名,mode表示如何打开。详细介绍如下。
返回值:文件打开成功后,将返回指向流的文件指针。如果文件无法打开,则返回NULL,错误代码存储在errno中。
中等。例子如下
# includestdio.h
//根据需要修改为想要打开的文件。
# define F _ PATH " d:\ \ my file \ \ file . dat "
int main(void)
{
FILE * fp = NULL//需要关注
fp=fopen(F_PATH," r ");//以只读方式打开文件。
if(NULL==fp)
{
return-1;//要返回的错误代码
}
fclose(FP);//打开文件并停止操作后,关闭打开的文件。
fp = NULL//需要为空,否则会指向原来打开的文件地址。
返回0;
}
参数模式的类型:
r
以只读方式打开文件。该文件必须存在。
r
以读/写方式打开文件,并且该文件必须存在。
元素铷的符号
读写打开一个二进制文件,允许读写数据。该文件必须存在。
w
打开只写文件。如果文件存在,文件的长度将被清除为0,即文件的内容将消失。如果文件不存在,则创建该文件。
w
打开读写文件。如果文件存在,文件的长度将被清除为零,即文件的内容将消失。如果文件不存在,则创建该文件。
a
以其他方式打开只写文件。如果该文件不存在,将会创建它。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容。(保留EOF字符)
a
以附加方式打开读写文件。如果该文件不存在,将会创建它。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容。
(不保留原始的EOF符号)
世界银行
只写以打开或创建新的二进制文件;只允许写入数据。
世界银行
读写打开或创建一个二进制文件,允许读写。
腹肌
读写打开一个二进制文件,允许在文件末尾读取或追加数据。
如何用C语言打开文本文件? c编程语言非常强大,通过打开文本函数(里面的参数表示要打开的文本的位置和文件名),就可以打开相应的文本。
首先,包含的头文件:
# includesdio.h,这是一个输入输出函数。
其次,打开文本文件:
FILE *file = fopen("c:\\1.txt "," r ");代表驱动器C的文件文件名为1.txt,r表示以只读方式打开。
第二个参数表示打开模式,
“A”表示附加模式被打开,
“r”表示在阅读模式下打开,
“w”表示以书面形式公开,
第三,读取文本文件中的数据:
方法:
char s[10]= " ";
而(!feof(文件))
fread(s,1,1,file);
通过fread函数读写打开的文件,即改变文件的内容。
C语言关闭一个不活动的文件后,如何打开它? 打开模式的描述
r以只读方式打开文件,只允许读,不允许写。该文件必须存在。
r以读/写模式打开文件,允许读写。该文件必须存在。
Rb以读/写模式打开一个二进制文件,允许读/写数据。
RT以读/写模式打开一个文本文件,允许读写。
以只写模式打开文件。如果文件存在,长度将被清除为0,即文件的内容将消失。如果不存在,将创建该文件。
通过读/写打开文件。如果文件存在,文件的长度将被清除为零,即文件的内容将消失。如果文件不存在,则创建该文件。
通过追加打开只写文件。如果该文件不存在,将创建该文件。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容(保留EOF符号)。
通过追加打开一个读/写文件。如果该文件不存在,将创建该文件。如果文件存在,写入的数据将被添加到文件的末尾,即保留文件的原始内容(不保留原始的EOF符号)。
WB以只写模式打开或创建一个新的二进制文件,只能写入数据。
WB以读/写模式打开或创建一个二进制文件,允许读写。
Wt以读/写模式打开或创建一个文本文件,允许读写。
At以读/写模式打开一个文本文件,允许在文本末尾读取或追加数据。
AB以读/写模式打开一个二进制文件,允许在文件末尾读取或追加数据。
如何用C语言打开一个文件? 最近经常用C语言做文件操作。记住几个常见的操作。
获取文件大小:
fseek(fp,0,SEEK _ END);
int fileSize = ftell(FP);
倒带(FP);
读取指定位置的数据块:
fseek( fp,offset,SEEK _ SET);
int num_read = fread(buf,1,length,FP);
删除文件
int res = access(文件名,0);//判断文件是否存在。
if ( res == 0)
{
res = remove(文件名);//删除文件
return(RES = = 0);
}
在指定位置写入块数据:
fseek( fp,offset,SEEK _ SET);
num_write = fwrite( buf,1,n,FP);
打开文件有一种特殊的方法。如果一个文件已经有了一些数据,您需要继续在其上添加数据,但是是在指定的位置。也就是说,你还需要通过fseek找到写入位置,然后fwrite。这时候你就需要用“rb”的方式打开了。不是以a或ab的方式。在“a”模式下打开时,fseek功能不起作用。
获取文件属性
结构统计;
FILE *fp = fopen( filename.c_str(),“Rb”);
如果(!fp)
{ //错误
}
fstat( fp-_file,ST);
遍历目录
STD::string dir spec = dir " \ *。*";
struct _ finddata _ t filefind
int done = 0;
int ptr _ t handle = 0;
if((handle = _ findfirst(dir spec . c _ str(),filefind) ) == -1)
返回IVS _失败;
IVS _结果res = IVS_OK,响应= IVS _ OK;
而(!(done=_findnext(handle,filefind)))
{
如果(!strcmp(filefind.name," ") || !strcmp(filefind.name," ") )
继续;
AdsFileInfo info
if((_A_SUBDIR==filefind.attrib))
{
信息。_ filename = filefind.name
信息。_ fileSize = filefind.size
信息。_ atime = filefind.time _ access
信息。_ ctime = filefind.time _ create
信息。_ mtime = filefind.time _ write
信息。_ isdir = true
}
其他
{
STD::string tmpFilename = dir " \ ";
tmpFilename = filefind.name
res = getFileInfo( tmpFilename,info);
回应=(!成功(res))?res:响应;
}
list . push _ back(info);
}
_ find close(handle);
c语言文件打开功能 美国国家标准学会
指定函数fopen打开文件,函数fclose关闭文件。
1.调用方法通常是:
代码如下:
文件
* fp
Fp=fopen(文件名,
开放模式);
2.参数描述:
文件名:
“myfile.dat”、“F:\data\myfile.dat”等表单;
打开模式:
“r”(只读)
打开文本文件进行输入。
“w”(只写)
打开文本文件进行输出。
“一个”(添加)
将数据添加到文件末尾
“rb”(只读)
打开二进制文件进行输入。
“wb”(只写)
打开二进制文件进行输出。
“r”(阅读和写作)
打开一个文本文件进行读写。
“w”(读写)
为读写创建一个新的文本文件。
“a”(阅读和写作)
打开一个文本文件进行读写。
“rb”(读和写)
打开一个二进制文件进行读写。
“wb”(阅读和写作)
为读写创建一个新的二进制文件。
“ab”(阅读和写作)
打开一个二进制文件进行读写。
3.注意:
(1)以“r”模式打开的文件不能输入数据,文件已经存在,否则会出错;
(2)对于以“W”模式打开的文件,只能向文件中输入数据。如果打开的文件不存在,打开时会创建一个以指定名称命名的新文件;如果指定的文件存在,请在打开时删除该文件,然后创建一个新文件。
(3)如果函数fopen打开文件失败,则fopen返回空指针值null;
(4)程序开始运行时,系统自动打开三个标准文件:标准输入(stdin)、标准输出(stdout)和标准错误输入。
Out (stderr)。如果要使用I/O端,不需要打开,可以直接使用,比如fputc(stdout,' a ');将字符a输出到屏幕上。
最后更新于 2023-10-14 09:26:47 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章