c语言打开文件

C语言怎样对文件进行操作

我们运用C语言编写程序的时候,经常需要对文件进行操作。那么该如何实现呢?下面我给大家分享一下。

工具/材料

Sunlime Text

01

打开Sublime Text软件,新建一个C语言文件,然后导入C语言库,如下图所示

02

接下来新建C语言的main函数,对文件的操作都会在main函数中进行,如下图所示

03

接下来调用C语言的fopen函数对文件进行打开操作,如下图所示

04

当打开文件以后就可以通过fgetc函数读取文件里面的内容,如下图所示

c语言打开文件

c语言库函数的打开文件函数

c语言标准库中用于打开文件的函数是fopen()。

函数原型:FILE

*

fopen(const

char

*

path,const

char

*

mode);

 

参数说明:path指明要打开的文件名,mode指明以什么方式打开。详细在下面介绍。

返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno

中。示例如下

#includestdio.h

//根据需要修改成自己要打开的文件即可。

#define F_PATH “d:\\myfile\\file.dat”

int main(void)

{

FILE *fp=NULL;//需要注意

fp=fopen(F_PATH,”r”); //以只读方式打开一个文件

if(NULL==fp)

{

return -1;//要返回错误代码

}

fclose(fp); //打开一个文件停止操作后,要关闭打开的文件

fp=NULL;//需要指向空,否则会指向原打开文件地址

return 0;

}

参数mode的类型:

r

以只读方式打开文件,该文件必须存在。

r+

以可读写方式打开文件,该文件必须存在。

rb+

读写打开一个二进制文件,允许读写数据,文件必须存在。

w

打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+

打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a

以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

(原来的EOF符不保留)

wb

只写打开或新建一个二进制文件;只允许写数据。

wb+

读写打开或建立一个二进制文件,允许读和写。

ab+

读写打开一个二进制文件,允许读或在文件末追加数据。

如何利用c语言打开文本文件?

C程序语言非常强大,通过打开文本的函数(里面的参数指出要打开文本的位置及文件名),即可打开相应的文本。

第一,包含的头文件:

#include stdio.h,这是一个输入输出函数,

第二,打开文本文件:

FILE *file = fopen(“c:\\1.txt”,”r”);代表C盘的文件,文件名为1.txt,r表示以只读的方式打开,

第二个参数表示打开方式,

“a” 表示追加方式打开,

“r” 表示以读方式打开,

“w” 表示以写方式打开,

第三,读入文本文件中的数据:

方法:

char s[10] = “”;

while (!feof(file))

fread(s,1,1,file);

通过fread函数对打开的文件进行读和写操作,也就是这样来改变文件的内容。

c语言关闭非活动文件后怎样打开

打开方式说明

r以只读方式打开文件,只允许读取,不允许写入。该文件必须存在。

r+以读/写方式打开文件,允许读取和写入。该文件必须存在。

rb+以读/写方式打开一个二进制文件,允许读/写数据。

rt+以读/写方式打开一个文本文件,允许读和写。

w以只写方式打开文件,若文件存在则长度清为0,即该文件内容消失,若不存在则创建该文件。

w+以读/写方式打开文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a以追加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF符保留)。

a+以追加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的EOF符 不保留)。

wb以只写方式打开或新建一个二进制文件,只允许写数据。

wb+以读/写方式打开或建立一个二进制文件,允许读和写。

wt+以读/写方式打开或建立一个文本文件,允许读写。

at+以读/写方式打开一个文本文件,允许读或在文本末追加数据。

ab+以读/写方式打开一个二进制文件,允许读或在文件末追加数据。

如何用C语言打开一个文件?

近用c语言做文件操作比较频繁,记几个常用的操作

获得文件大小:

fseek(fp, 0, SEEK_END);

int fileSize = ftell(fp);

rewind(fp);

读取指定位置的数据块:

fseek( fp,offset,SEEK_SET );

int num_read = fread(buf, 1, length, fp);

删除文件

int res = access( filename,0 ); // 判断文件是否存在

if ( res == 0 )

{

res = remove( filename );// 删除文件

return ( res ==0 );

}

在指定位置写入块数据:

fseek( fp, offset, SEEK_SET );

num_write = fwrite( buf, 1, n, fp );

打开文件方式中有一个比较特别的,如果 某文件中已经有了一部分数据,你需要继续在上面添加数据,但是是在指定位置添加,也就是说,仍然需要通过 fseek 找到写入位置,然后再 fwrite,这时候需要以 “rb+” 方式打开。而不能以”a”或者”ab+”方式。以”a”方式打开,fseek函数不起作用。

获得文件属性

struct stat st;

FILE *fp = fopen( filename.c_str(),”rb” );

if ( !fp )

{ // error

}

fstat( fp-_file, st );

遍历目录

std::string dirspec = dir + “\\*.*”;

struct _finddata_t filefind;

int done = 0;

intptr_t handle = 0;

if( ( handle = _findfirst(dirspec.c_str(),filefind) ) == -1 )

return IVS_FAIL;

IVS_RESULT res = IVS_OK, response =IVS_OK;

while( !(done=_findnext(handle,filefind)) )

{

if( !strcmp(filefind.name,”..”) || !strcmp(filefind.name,”.”) )

continue;

AdsFileInfo info;

if((_A_SUBDIR==filefind.attrib))

{

info._filename = filefind.name;

info._fileSize = filefind.size;

info._atime = filefind.time_access;

info._ctime = filefind.time_create;

info._mtime = filefind.time_write;

info._isdir = true;

}

else

{

std::string tmpFilename = dir + “\\”;

tmpFilename += filefind.name;

res = getFileInfo( tmpFilename, info );

response = (!SUCCESS(res))?res: response;

}

list.push_back( info );

}

_findclose(handle);

C语言文件打开函数

ANSI

C规定文件打开用函数fopen,关闭为fclose。

1、调用方式通常为:

代码如下:

FILE

*fp;

fp=fopen(文件名,

打开方式);

2、参数说明:

文件名:

形如”myfile.dat”、”F:\data\myfile.dat”等等;

打开方式:

“r”(只读)

为输入打开一个文本文件

“w”(只写)

为输出打开一个文本文件

“a”(追加)

向文件文件尾添加数据

“rb”(只读)

为输入打开一个二进制文件

“wb”(只写)

为输出打开一个二进制文件

“r+”(读写)

为读写打开一个文本文件

“w+”(读写)

为读写建立一个新的文本文件

“a+”(读写)

为读写打开一个文本文件

“rb+”(读写)

为读写打开一个二进制文件

“wb+”(读写)

为读写建立一个新的二进制文件

“ab+”(读写)

为读写打开一个二进制文件

3、注意:

(1)用”r”方式打开的文件,不能向其输入数据,并且该文件已存在,否则出错;

(2)用”w”方式打开的文件,只能向该文件输入数据,如果所打开的文件不存在,则在打开时新建一个以指定的名字命名的文件;如果指定文件存在,则在打开时将该文件删去,然后新建一个新的文件;

(3)如果函数fopen打开文件出错,则fopen返回一个空指针值NULL;

(4)在程序开始运行时,系统自动打开3个标准文件:标准输入(stdin),标准输出(stdout),标准出错输

出(stderr)。如果要使用输入输出终端,则不需要打开,可以直接使用,如fputc(stdout,’a’);向屏幕输出字符a。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月28日 05:08:01
下一篇 2024年3月28日 05:14:12

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    3900
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5600
  • linux给文件写权限,linux怎么给文件权限

    linux宝塔写入权限不足 1、可以使用chmod命令修改权限。语法:chmod [-cfvR] [–help] [–version] mode file…说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 2、通过更改文件权限可以使用c…

    2024年5月23日
    5000
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4400
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4400
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7200
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6300
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4500
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    4800
  • 学c语言编程,学c语言编程用什么软件

    编程开发必须要学C语言吗? 1、要学习。编程开发的学习内容主要包括c语言、python和c+语言。C语言作为一种简单灵活的高级编程语言,它是一个面向过程的语言,一般是作为计算机专业的基础入门语言课程。 2、C语言。对于刚接触编程的人来说,先学习C语言是非常重要的。C语言可以说是是计算机编程语言的鼻祖,其他的编程语言几乎全是由C语言变化衍生出来的。 3、不需要…

    2024年5月23日
    3400

发表回复

登录后才能评论



关注微信