网站首页 > 文章中心 > 其它

c语言中修改所用到的函数_c语言中feof函数的用法

作者:小编 更新时间:2023-09-03 18:30:31 浏览量:354人看过

c语言常用函数有哪些?主要掌握的要点是什么

C语言中什么函数可以修改文件内容(可以随意删除原内容的一部分)?

C语言文件操作详解

C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库函数有:

文件的打开操作 fopen 打开一个文件

文件的关闭操作 fclose 关闭一个文件

文件的读写操作 fgetc 从文件中读取一个字符

fputc 写一个字符到文件中去

fgets 从文件中读取一个字符串

fputs 写一个字符串到文件中去

fprintf 往文件中写格式化数据

fscanf 格式化读取文件中数据

fread 以二进制形式读取文件中的数据

fwrite 以二进制形式写数据到文件中去

getw 以二进制形式读取一个整数

putw 以二进制形式存贮一个整数

文件状态检查函数 feof 文件结束

ferror 文件读/写出错

clearerr 清除文件错误标志

ftell 了解文件指针的当前位置

文件定位函数 rewind 反绕

fseek 随机定位

# 文件的打开

①..函数原型

FILE *fopen(char *pname,char *mode)

按照mode 规定的方式,打开由pname指定的文件.若找不到由pname指定的相应文件,就按以下方式之一处理:

(1) 此时如mode 规定按写方式打开文件,就按由pname指定的名字建立一个新文件;

打开文件的作用是:

(1)分配给打开文件一个FILE 类型的文件结构体变量,并将有关信息填入文件结构体变量;

FILE *:指出fopen是一个返回文件类型的指针函数;

pname:是一个字符指针,它将指向要打开或建立的文件的文件名字符串.

正常返回:被打开文件的文件指针.

异常返回:NULL,表示打开操作不成功.

例如:

//定义一个名叫fp文件指针

FILE *fp;

//判断按读方式打开一个名叫test的文件是否失败

if((fp=fopen("test","r")) == NULL)//打开操作不成功

{

printf("The file can not be opened.\n");

exit(1);//结束程序的执行

}

要说明的是:C语言将计算机的输入输出设备都看作是文件.例如,键盘文件、屏幕文件等.ANSI C标准规定,在执行程序时系统先自动打开键盘、屏幕、错误三个文件.这三个文件的文件指针分别是:标准输入stdin、标准输出stdout和标准出错 stderr.

* 文件的关闭

①.. 函数原型

int fclose(FILE *fp);

关闭由fp指出的文件.此时调用操作系统提供的文件关闭功能,关闭由fp-fd指出的文件;释放由fp指出的文件类型结构体变量;返回操作结果,即0或EOF.

fp:一个已打开文件的文件指针.

正常返回:0.

异常返回:EOF,表示文件在关闭时发生错误.

int n=fclose(fp);

*文件的读写操作

A. 从文件中读取一个字符

int fgetc(FILE *fp);

从fp所指文件中读取一个字符.

fp:这是个文件指针,它指出要从中读取字符的文件.

正常返回: 返回读取字符的代码.

非正常返回:返回EOF.例如,要从"写打开"文件中读取一个字符时,会发生错误而返回一个EOF.

【例】显示指定文件的内容.

#include stdio.h

void main(int argc,char *argv[]) //命令行参数

int ch;//定义文件类型指针

FILE *fp;//判断命令行是否正确

return; //键入了错误的命令行,结束程序的执行

//按读方式打开由argv[1]指出的文件

if((fp=fopen(argv[1],"r"))==NULL)

printf("The file %s can not be opened.\n",argv[1]);//打开操作不成功

return;//结束程序的执行

//成功打开了argv[1]所指文件

ch=fgetc(fp); //从fp所指文件的当前指针位置读取一个字符

while(ch!=EOF) //判断刚读取的字符是否是文件结束符

putchar(ch); //若不是结束符,将它输出到屏幕上显示

ch=fgetc(fp); //继续从fp所指文件中读取下一个字符

} //完成将fp所指文件的内容输出到屏幕上显示

fclose(fp); //关闭fp所指文件

B. 写一个字符到文件中去

int fputc(int ch,FILE *fp)

把ch中的字符写入由fp指出的文件中去.

ch:是一个整型变量,内存要写到文件中的字符(C语言中整型量和字符量可以通用).

fp:这是个文件指针,指出要在其中写入字符的文件.

正常返回: 要写入字符的代码.

非正常返回:返回EOF.例如,要往"读打开"文件中写一个字符时,会发生错误而返回一个EOF.

【例】将一个文件的内容复制到另一个文件中去.

//程序名为:copyfile.c

//file copy program.

int ch;

FILE *in,*out; //定义in和out两个文件类型指针

return; //命令行错,结束程序的执行

if((in=fopen(argv[1],"r"))==NULL)

printf("The file %s can not be opened.\n",argv[1]);

return; //打开失败,结束程序的执行

//成功打开了argv[1]所指文件,再

ch=fgetc(in); //从in所指文件的当前指针位置读取一个字符

fputc(ch,out); //若不是结束符,将它写入out所指文件

ch=fgetc(in); //继续从in所指文件中读取下一个字符

} //完成将in所指文件的内容写入(复制)到out所指文件中

fclose(in); //关闭in所指文件

fclose(out); //关闭out所指文件

【例】按十进制和字符显示文件代码,若遇不可示字符就用井号"#"字符代替之.

//程序名为:dumpf.c

//执行时可用:dumpf filename1 形式的命令行运行.

// File dump program.

void main(int argc,char *argv[])

int ch,count,i;

FILE *fp;

printf("Error format,Usage: dumpf filename\n");

return;

count=0;

do{

i=0;

//按八进制输出第一列,作为一行八个字节的首地址

// 从打开的文件中读取一个字符

ch=fgetc(fp);

// 按十进制方式输出这个字符的ASCII码

// 如果是不可示字符就用"#"字符代替

if(ch' '||ch'~') str[i]='#';

// 如果是可示字符,就将它存入数组str以便形成字符串

else str[i]=ch;

// 保证每一行输出八个字符

}while(ch!=EOF); // 遇到文件尾标志,结束读文件操作

str[i]='\0'; // 在数组str加字符串结束标志

printf(" %s\n",str); // 输出字符串

count++; // 准备输出下一行

}while(ch!=EOF); // 直到文件结束

fclose(fp); // 关闭fp所指文件

C. 从文件中读取一个字符串

char *fgets(char *str,int n,FILE *fp)

从由fp指出的文件中读取n-1个字符,并把它们存放到由str指出的字符数组中去,最后加上一个字符串结束符'\0'.

str:接收字符串的内存地址,可以是数组名,也可以是指针.

n: 指出要读取字符的个数.

fp:这是个文件指针,指出要从中读取字符的文件.

正常返回:返回字符串的内存首地址,即str的值.

非正常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到了文件尾,还是发生了错误.例如,要从"写打开"文件中读取字符串,将

发生错误而返回一个NULL值.

D. 写一个字符串到文件中去

int fputs(char *str,FILE *fp)

把由str指出的字符串写入到fp所指的文件中去.

str:指出要写到文件中去的字符串.

fp:这是个文件指针,指出字符串要写入其中的文件.

正常返回: 写入文件的字符个数,即字符串的长度.

非正常返回:返回一个NULL值,此时应当用feof()或ferror()函数来判别是读取到了文件尾,还是发生了错误.例如,要往一个"读打开" 文件中写字符串时,

会发生错误而返回一个NULL值.

【例】以下程序将一个文件的内容附加到另一个文件中去.

//程序名:linkfile.c

// file linked program.

char buffer[SIZE];

// 按追加方式打开argv[1] 所指文件

if((fp1=fopen(argv[1],"a"))==NULL)

// 读入一行立即写出,直到文件结束

while(fgets(buffer,SIZE,fp1)!=NULL)

printf("%s\n",buffer);

fputs(buffer,fp1);

fclose(fp1);

if((fp1=fopen(argv[1],"r"))==NULL)

在C语言中,要用到的函数都有哪些?

去这里看吧比较好

C语言函数大全,已包含绝大部分的函数.每个函数包含函数名,功能,用法,举例,内容详尽.

C语言怎么在调用函数中修改main函数中的值

你将一个int类型设为参数,然后地址传递就可以了

void?x(int?x)//注意这里有取地址符号,是地址传递

x?=?x-1;

//然后main中调用

int?main()

int?i=10;

x(i);//

//此时i成功减一

c语言中strlen()怎么用

函数声明:extern unsigned int strlen(char *s);

所属函数库:string.h

功能:返回s所指的字符串的长度,其中字符串必须以'\0'结尾

参数:s为字符串的初始地址

使用举例:

代码如下

编译运行结果

说明:

函数strlen比较容易理解,其功能和sizeof很容易混淆.其中sizeof指的是字符串声明后占用的内存长度,它就是一个操作符,不是函数;而strlen则是一个函数,它从第一个字节开始往后数,直到遇见了'\0',则停止

第一 string头文件中的函数strlen 只可以用来测试字符型数组的长度,其他类型不可以

第二 如果要测试int 修改原函数中的参数,会导致数组长度变长(计算机会一直找下去,直到遇到\0)

第三 如果是字符数组,当里面的字符数少于数组长度时,可以正常输出用strlen,如果等于数组长度,则会出现问题

函数介绍:

(推荐教程:c语言教程)

strlen()函数用于计算字符串的长度,直到空结束字符,但不包括空结束字符.

语法结构:

size_t strlen(const char *str)

参数说明:

str -- 要计算长度的字符串.

返回值:

该函数返回字符串的长度

c语言 字符串替换函数

替换函数主要有strtr(),str_repalce()这两个函数.

首先针对strtr函数第一种方式:

我们看看下面的举例:

php

echo strtr("I Love you","Lo","lO");

得到的结果是:

I lOve yOu

这个结果提醒我们:

①strtr它是区分大小写的

再举一个特殊例子,说明这个php的sttr函数的怪异

echo strtr("I Love you","Love","");

结果是:

I Love you

什么也不会改变,所以strtr需要注意的是:

再次举例strtr函数的另一种情况:

echo strtr("I Loves you","Love","lOvEA");

I lOvEs yOu

注意看第三个参数的A,在结果中并没有出现.

ok,既然这个strtr函数挺麻烦为什么还要用呢?

原因是,它的速度很快.据说,strtr 比 str_replace 快四倍.

第二种情况:

strtr(string,array)

$table_change = array('you'='her sister');

echo strtr("I Love you",$table_change);

结果为:

I Love her sister

比如:

$table_change += array('Love' = 'hate');

结果是:

I hate her sister

再次提醒那个Love 写成love 是行不通的哦.

字符串取代.

语法: string str_replace(string needle, string str, string haystack);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 str 代入 haystack 字符串中,将所有的 needle 置换成 str.

下例将 %body% 以 black 取代

$bodytag = str_replace("%body%", "black", "body text=%body%");

echo $bodytag;

格式:

[@str_replace("要替换的旧内容", "要取代原内容的新字符", $被替换内容的变量名)]

实例:

多对一替换:想把内容字段里所有的p/p标签清除掉,替换成空 [@str_replace(array('p','/p'), '', $Content)]

一对一替换:想把内容字段里所有的br标签换成p [@str_replace('br', 'p', $Content)]

多对多替换:想把内容字段里的br换成br /, 同时p换hr,把/p全清除 [@str_replace(array('br', 'p','/p'), array('br /','hr',''), $Content)]

以上就是土嘎嘎小编为大家整理的c语言中修改所用到的函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章