c语言文件读写文件结束|关于C语言读取文件结尾的问题

㈠ 如何用C语言读写文件

c语言读写文件程序:

#include "stdio.h"

#include <stdlib.h>main()

{

FILE *fp1;//定义文件流指针,用于打开读取的文件

FILE *fp2;//定义文件流指针,用于打开写操作的文件

char text[1024];//定义一个字符串数组,用于存储读取的字符

fp1 = fopen("d:\a.txt","r");//只读方式打开文件a.txt

fp2 = fopen("d:\b.txt","w");//写方式打开文件a.txt

while(fgets(text,1024,fp1)!=NULL)//逐行读取fp1所指向文件中的内容到text中

{

puts(text);//输出到屏幕

fputs(text,fp2);//将内容写到fp2所指向文件中

}

fclose(fp1);//关闭文件a.txt,有打开就要有关闭

fclose(fp2);//关闭文件b.txt

}

(1)c语言文件读写文件结束扩展阅读:

C语言文件读写操作总结

一.非标准文件的读写 不带缓冲的

1.文件的打开和关闭

open()函数的作用是打开文件,其调用格式为: int open(char *filename, int access); 该函数表示按access的要求打开名为filename的文件,返回值为文件描述字,其中access有两部分内容: 基本模式和修饰符, 两者用" "("或")方式连接,修饰符可以有多个, 但基本模式只能有一个。

access的规定

O_RDONLY 只读

O_APPEND 文件指针指向末尾

O_WRONLY 只写

O_CREAT 文件不存在时创建文件, 属性按基本模式属性

O_RDWR 读写

O_BINARY 打开一个二进制文件

O_TEXT 打开一个文字文件

open()函数打开成功, 返回值就是文件描述字的值(非负值), 否则返回-1。 close()函数的作用是关闭由open()函数打开的文件, 其调用格式为: int close(int handle); 该函数关闭文件描述字handle相连的文件。

2.读写函数

int read(int handle, void *buf, int count);

read()函数从handle(文件描述字)相连的文件中, 读取count个字节放到buf所指的缓冲区中, 返回值为实际所读字节数, 返回-1表示出错。返回0 表示文件结束。

write()函数的调用格式为: int write(int handle, void *buf, int count); write()函数把count个字节从buf指向的缓冲区写入与handle相连的文件中, 返回值为实际写入的字节数。

3.随机定位函数

lseek()函数的调用格式为: int lseek(int handle, long offset, int fromwhere);

该函数对与handle相连的文件位置指针进行定位,功能和用法与fseek()函数相同。 tell()函数的调用格式为: long tell(int handle); 该函数返回与handle相连的文件现生位置指针, 功能和用法与ftell()相同

二、标准文件的读写

1.文件的打开函数fopen()

文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。

当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头。若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头。

fopen(char *filename,char *type);

其中*filename是要打开文件的文件名指针,一般用双引号括起来的文件名表示,也可使用双反斜杠隔开的路径名。

而*type参数表示了对打开文件的操作方式。其可采用的操作方式如下:

"r" 打开,只读; "w" 打开,文件指针指到头,只写; "a" 打开,指向文件尾,在已存在文件中追加; "rb" 打开一个二进制文件,只读; "wb" 打开一个二进制文件,只写; "ab" 打开一个二进制文件,进行追加 ;

"r+" 以读/写方式打开一个已存在的文件; "w+" 以读/写方式建立一个新的文本文件 ;"a+" 以读/写方式打开一个文件文件进行追加 ;"rb+" 以读/写方式打开一个二进制文件; "wb+" 以读/写方式建立一个新的二进制文件 ;

"ab+" 以读/写方式打开一个二进制文件进行追加 ;当用fopen()成功的打开一个文件时,该函数将返回一个FILE指针,如果文件打开失败,将返回一个NULL指针。

㈡ 关于C语言读取文件结尾的问题

可以使用while循环 如:while(fscanf(fp,"%s",str)!=EOF) 其中这个判断 EOF 就是是否读取到文件结尾是 end of file的缩写.

㈢ c语言文件读取到指定字符结束

在读到指定字符时,输入语句return 0;

㈣ c语言中处理文件时,文本文件和二进制文件都可以采用eof作为判断文件是否读写结束 顺便解释下原因

函数foef作为标准库函数的作用是检查文件是否到了结尾它用EOF这个宏来控制循环我们可以这样想想,在fclose函数调用中,自动为写入的文件加上一个EOF代表的标示符,那么在feof中我们就可以通过检测EOF代表的字符出现与否来控制流程这样,我们就可以检查文件是否到了结尾满意请采纳,不满意请追问

㈤ c语言文件读取问题,停止运行

代码能力和代码格式OK,细心点就好。fopen里面的 "r" (明显是read啊)是只读权限,注释也是错的。你以只读方式打开了一个文件之后又向你打开的文件里面写数据,这是自相矛盾。下面给你个网络的fopen的权限表:r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。rb+ 读写打开一个二进制文件,只允许读写数据。rt+ 读写打开一个文本文件,允许读和写。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。(原来的EOF符不保留)wb 只写打开或新建一个二进制文件;只允许写数据。wb+ 读写打开或建立一个二进制文件,允许读和写。wt+ 读写打开或着建立一个文本文件;允许读写。at+ 读写打开一个文本文件,允许读或在文本末追加数据。ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。有些C编译系统可能不完全提供所有这些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。

㈥ C语言中,对文件读写之前应该先干什么,使用结束后应该干什么

是打开指定文件,一般若该文件不存在则建立此文件,读写完成后,要将其关闭。

㈦ C语言 格式读取 fscanf() 如何读取至末尾结束(txt)

fscanf是有返回值的。如果返回EOF,证明到达文件结尾

在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

(7)c语言文件读写文件结束扩展阅读:

应用

档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。

C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。

㈧ C语言中文件的读写实际过程

rb和r其实没多大区别,本质上都是二进制数据流,只不过文本用的二进制数据的意义为ASCII或其它内码。相对于rb/wb重要的一点区别在于,r/w的文本换行格式在不同系统上有区别(DOS/Windows下是回车符CR('\r')+换行符LF('\n'),UNIX/Linux下是LF,MAC下是CR),引起了文件操作的一些细节(例如fputs和fprintf对于字符串末尾的处理)上的差异。至于具体的读写实现,由库函数进行处理。wb/rb方式一般采用缓冲读写,最终借助系统底层的代码实现对外存文件或其它输入/输出流的抽象(包括在内存中建立缓冲区)和位复制(bitwise )。w/r方式在此基础上处理了上述的一些差异性问题。一般情况下,对于缓冲区的操作取决于库函数的实现,对于用户来说是不可见的,因为这不必要(不同平台的实现不能保证一致)。至于键盘这种标准输入设备,被抽象为标准输入流stdin,除了抽象过程本身(由底层系统实现)外,在实现方式上和从外存文件读入没有本质上的区别。====[原创回答团]

㈨ C语言我写了一个文件读写程序,为什么一运行就结束了,不能输入!

fscanf(fp,"&d",&n);改成fscanf(fp,"%d",&n); return之前增加fclose(fp);

㈩ C语言里怎么实现在文件的某个位置写入文件结束符号

假定 fp 为文件指针 , 允许写入操作 , 并且目前正在要写入文件结束符号的位置上。fputc( EOF , fp );


赞 (0)