精华内容
下载资源
问答
  • 主要介绍了c语言文件读写示例(c语言文件操作),需要的朋友可以参考下
  • C语言文件读写

    2013-04-16 22:41:55
    C语言实现度文件读取,有源代码。 一个简单的实例。 文件读写
  • C语言 文件读写

    2019-07-30 09:23:09
    本文主要总结用C语言读写txt文本的内容,具体的步骤如下所述: 读取txt文件 float* output2 = (float*)malloc(400 * sizeof(float)); memset(output2, 0, 400 * sizeof(float)); FILE* fps; fps = fopen("F:\\...

    本文主要总结用C语言来读写txt文本的内容,具体的步骤如下所述:

    读取txt文件

    float* output2 = (float*)malloc(400 * sizeof(float));
    	memset(output2, 0, 400 * sizeof(float));
    
    	FILE* fps;
    	fps = fopen("F:\\depth1.txt", "r+");
    
    	for (int i = 0; i < 400; i++)
    	{
    		fscanf(fps, "%f", &output2[i]);
    	}
    	fclose(fps);
    

    写入txt文件

    FILE* fds;
    	fds = fopen("../../Data/data.txt", "w");
    
    	for (int i = 0; i < 704 * 704; i++)
    	{
    		float temp = Output[i];
    		fprintf(fds, "%f\n", temp);
    
    	}
    
    	fclose(fds);
    
    展开全文
  • c语言文件读写

    2013-05-04 14:16:43
    文件读写很好的文件读写方法,好好阅读有益与对文件读写的认识
  • C语言 文件读取

    2013-05-30 12:29:53
    文件读取 管理员密码为:1234 文档信息存储到data.cpm中。 主要引用文档读取和存储
  • C语言文件读写(1)-文本文件读操作

    万次阅读 多人点赞 2020-06-30 12:40:09
    C语言文件读写-之文本文件读写

    C语言文件读写——文本文件读操作

     

    最近和几个初学C语言的朋友讨论文件读写,发现他们在使用C语言文件读写功能的时候遇到了不少问题,不是文件打开方式有问题,就是文件读写有问题,总是得不到自己想要的结果。

    C语言文件读写操作,既简单又复杂,要熟练使用每一项功能,也确实不易,既有文本文件操作,也有二进制文件的读写。本文先比较详细地介绍C语言的文本文件读操作,下一篇会详细介绍文本文件的写使用。

    什么是文本文件

    文本文件是由一行一行的字符的有序序列组成的。一行是由0个或者若干个字符加上一个行结束符'\n'(换行符)组成的,但是最后一行的最后一个字符是否是'\n'可能在不同的平台的实现不太一样,但是由于是最后一行的最后一个字符,所以并不会影响正常读写,但是我们在写文本文件的时候,最好也保证最有一个字符是行结束符'\n'。

    在Windows上,为了方便人阅读文本文档,在写入'\n'的时候,系统会自动将'\n'转换为'\r\n'(回车换行),在读取的时候会自动将'\r\n'转换为'\n'。在Linux上,并不会有这种转换,所以Windows上的文本文件在Linux上比较低的版本上进行读写的时候有时候需要进行一下转换,但是现在的Linux系统基本上已经能够正常处理'\r\n'了。

    为了能够保证文本文件的正常读写,要求:

    • 写入的字符是可打印字符,或者一些特殊的控制符,比如'\t'(TAB键),'\n'。
    • 不要在空格字符后紧跟'\n'字符,否则可能在读取的时候空格会丢失。
    • 最后一个字符是'\n'。

    读文本文件示例

    说了这么多,我们先直接来一个读取文本文件内容的例子,然后再做一下具体分析,这个文本文件的内容就是本文档的部分内容,我们把它读取出来,然后在控制台显示,我们以Windows系统为例,Linux下面的操作方式是类似的,读取文本文件的示例代码如下:

    #include <stdio.h>
    void read_text(const char* file_name)
    {
    	char line[1024]={0};
    	FILE *file = fopen(file_name,"rt");
    	if(!file)
    		return;
    	while(1)
    	{
    		//文件读取结束
    		if(EOF == fscanf(file,"%s",line))
    			break;
    		printf("%s\n",line);
    	}
    	fclose(file);
    
    }
    int main(int argc, char* argv[])
    {
    	read_text("test.txt");
    	return 0;
    }

    然后运行程序,看效果是否是我们期望的那样,一行一行地显示在控制台,如下图所示,上边是程序的输出,下边是test.txt文件的内容。

    读文本文件详解

    C语言中打开文件,主要有两个函数,fopen和fopen_s,fopen_s是C11标准中新引入的,它们的函数申明是这样的:

    		
    	(1) 	
    FILE *fopen( const char *filename, const char *mode );	(until C99)
    FILE *fopen( const char *restrict filename, const char *restrict mode );(since C99)
    
    	(2) 	
    errno_t fopen_s(FILE *restrict *restrict streamptr, 
                    const char *restrict filename,  
                    const char *restrict mode);(since C11)

    fopen_s会做一些额外的检查,更“安全”一些,C11标准后,有很多这样的_s的函数,都是为了更加安全,会做一些安全性的检查,比如函数传入的指针是否为空,传入的缓冲区是否会溢出等等。

    返回值FILE*就代表了一个文件流对象,如果为NULL,则表示打开文件失败。

    重点看一下mode,即打开文件的方式,常用的mode主要有:

    mode 含义 说明 如果文件存在 如果文件不存在
    “r” 以读的方式打开文件,打开以后只能读 成功打开,并从文件开始读 打开失败
    "w" 创建一个文件进行写 文件内容会被清空 创建一个新文件
    "a" 追加 追加内容到文件末尾 将文件内容追加到文件末尾 创建一个新文件
    "r+" 扩展读 打开文件进行读写,可读可写 从文件开始读 打开失败
    "w+" 扩展写 创建一个文件进行读写 文件内容会被清空 创建一个新文件
    "a+" 扩展追加 打开文件进行读写 追加内容到文件末尾 创建一个新文件

     

     

     

     

     

    11啊

     除了这些基本的打开模式之外,还可以附加一些别的模式,比如“t”,“b”等,例如“rb”,表示以二进制方式打开文件,"wt"以文本文件的方式创建文件,默认是文本文件方式,所以“t”一般可以省略。

    从上面的表格我们可以简单总结出来,只要是有“r”标志,文件就要求存在,否则就会打开失败,其他的打开模式都不需要文件一定存在,如果文件不存在,则会创建一个新文件。所以,在进行文件读写之前,一定要明确自己的目的,是读文件,还是写文件,是从文件开始写,还是追加内容到文件末尾。

    本节的主题是读文本文件,所以我们在使用fopen的时候,就使用"r"或者"rt"标志,不要使用别的模式。

    说到读文本文件内容,不是一件简单事情,因为读文本文件内容也涉及到好些函数,如果选择不当,得到的结果也会不是我们期望的。

    其实文本文件的内容虽然在前面介绍过,要作为文本文件是有要求的,比如前面提到的每行要求以'\n'结束等。但是文本文件内容本身又可以分为有格式的和没有格式的,比如我们前面的test.txt文件,就是没有格式的,就是纯文本文件,因为除了换行之外,没有任何别的格式,信息是杂乱的。如果我们查看一下一个普通的Excel文件,里面的数据就很有格式,一行一行,一列一列,非常整齐,这就是有格式的文本文件样子,我们看一个有格式的文本文件,这是一个简易的学生名单文件student.txt,每一行包含的内容为学号,姓名,所属学院,成绩,如下图所示。

    这个student.txt文件内容就是格式化的,即每一行的数据格式都是一致的,包含的信息都是类似的,即都包含学号,姓名,学院和分数,而且它们之间是用空格隔开的,这就是格式化的文件数据。

    在读取非格式化和格式化数据的时候,需要用到的函数是不一样的,否则,用非格式化数据读取函数去读取格式化的数据,读取到的内容我们也不好利用,同样,用格式化数据读取函数去读取非格式化的数据,有时候也得不到正确结果。

    非格式化文本文件读取

     

    非格式文本文件内容读取主要有两个函数,fgetc和fgets,fgetc的函数原型为:

    int fgetc( FILE *stream );

     

    每次从文件中读取一个字符,直到文件结尾。如果读到文件结尾,返回EOF。

    fgetc不会对文件中的内容做任何处理,一次就读一个字符,'\n'也会想普通字符一样读取,我们来看一下使用fgetc读取我们前面提到的text.txt文件的效果,代码如下:

    void read_text_by_getc(const char* file_name)
    {
    	int ch = 0;
    	FILE *file = fopen(file_name,"rt");
    	if(!file)
    		return;
    	while(EOF != (ch = fgetc(file)))
    	{
    		//在屏幕上输出读到的每一个字符
    		putchar(ch);
    	}
    	fclose(file);
    }

    则执行效果下图所示。

    fgetc对于读取非格式化的文本内容,就是最真实地反应了文本文件中的内容。

    但是fgetc读取容易,处理起来却很麻烦,如果只是在屏幕上显示文件内容的话,没有问题,如果还要想对读取的内容进行处理的话,就麻烦一些。

    我们再来看一下fgets函数。

    fgets的函数原型为:

    char *fgets( char *restrict str, int count, FILE *restrict stream );

     

    (since C99)

    每次从文件中读取指定长度的内容,读取的长度最多为count-1个字符。读到'\n'的时候,这一次读取就结束了,即使还没有读到count-1个字符。如果读取失败,返回NULL。

    我们先看一下使用fgets读取test.txt文本文件的效果,代码如下:

    void read_text_by_gets(const char* file_name)
    {
    	char buffer[20]={0};
    	FILE *file = fopen(file_name,"rt");
    	if(!file)
    		return;
    	while(NULL != (fgets(buffer,sizeof(buffer),file)))
    	{
    		//显示每一次读取到的内容
    		printf("%s",buffer);
    	}
    	fclose(file);
    }

    然后运行,结果如下所示。

    从图中可以看到,显示结果一塌糊涂,为什么呢?因为我们的缓冲区buffer大小是20,所以每次只读19个字符,有时候刚好得到半个汉字,就显示很凌乱了。

    因此,如果我们想完整的一次读取一行的数据,这个缓冲区buffer必须足够大,至少要超过文件中最长的一行字符的长度,我们修改一下程序,我们知道我们的test.txt文件中每行都不会太长,所以我们把buffer的大小设置成128,看看效果如何,如下图所示。

    因此,我们在对于非格式化文本进行读取的时候,要选择合适的函数来读取,如果想一行一行的读取文本文件中的内容,最好使用fgets,并且提供足够大的缓冲区。

    格式化文本文件读取

    格式化文本文件的读取主要用到函数fscanf和fscanf_s。

    先看一下fscanf函数的原型。

    int fscanf( FILE *restrict stream, const char *restrict format, ... );

    (since C99)

    fscanf和scanf一样,有一个格式化字符串format参数,因此在读取文本内容的时候会严格按照这个format格式去读,因此,对于我们的读取结构化的数据就非常方便,以我们的student.txt为例,我们再来看一下student.txt文件的内容。

    1001 张三 计算机学院 90.0
    1002 李四 计算机学院 98.7
    1003 王五 软件学院 88
    1004 黄渤海 人文学院 97

    每一行代表一个学生,包含学号,姓名,所属学院以及成绩。

    当使用fscanf读取的时候,同样,遇到'\n',一次读取就结束了,假设我们有四个变量ID,Name,College,Score,我们可以用scanf一次把一行的数据都读取到这四个变量中,我们看一下代码:

    void read_formated_text(const char* file_name)
    {
    	int ID;
    	char Name[32]={0};
    	char College[128]={0};
    	float Score = 0.0;
    	FILE *file = fopen(file_name,"rt");
    	if(!file)
    		return;
    	printf("学生名单为:\n");
    	while(1)
    	{
    		//文件读取结束
    		if(EOF == fscanf(file,"%d %s %s %f",&ID,Name,College,&Score))
    			break;
    		printf("学号:%d 姓名:%s 学院:%s 分数:%.2f\n",ID,Name,College,Score);		
    	}
    	fclose(file);
    }

     

     运行结果下图所示。

    如果我们有一个结构体Student的话,也可以通过这种方式把一行的数据直接读取到一个结构体中,代码如下:

    void read_formated_text_by_struct(const char* file_name)
    {
    	struct Student stu;
    	FILE *file = fopen(file_name,"rt");
    	if(!file)
    		return;
    	printf("学生名单为:\n");
    	while(1)
    	{
    		//文件读取结束
    		if(EOF == fscanf(file,"%d %s %s %f",&stu.ID,stu.Name,stu.College,&stu.Score))
    			break;
    		printf("学号:%d 姓名:%s 学院:%s 分数:%.2f\n",stu.ID,stu.Name,stu.College,stu.Score);		
    	}
    	fclose(file);
    }

     

    结果是一样的。

    现在简单介绍一下fscanf_s,其函数原型为:

    int fscanf_s(FILE *restrict stream, const char *restrict format, ...);

      (since C11)

    对于这个函数的使用,牢记住一点就好了,如果读取的是字符串类型,需要在字符串变量后面在跟一个字符串长度的值来指明字符串变量或者数组能够容纳多少个字符,比如我们前面的读取student.txt文件的代码就可以改为:

    void read_formated_text_by_struct(const char* file_name)
    {
    	struct Student stu;
    	FILE *file = fopen(file_name,"rt");
    	if(!file)
    		return;
    	printf("学生名单为:\n");
    	while(1)
    	{
    		//文件读取结束
    		if(EOF == fscanf_s(file,"%d %s %s %f",&stu.ID,stu.Name,sizeof(stu.Name)-1,stu.College,sizeof(stu.College)-1,&stu.Score))
    			break;
    		printf("学号:%d 姓名:%s 学院:%s 分数:%.2f\n",stu.ID,stu.Name,stu.College,stu.Score);		
    	}
    	fclose(file);
    }

    因为Name和College都是字符串类型,所以在它们后面都跟了一个长度。执行结果仍然一样。

    到了这里,大家以为文本文件的读取内容应该已经结束了,其实不是,如果你是C语言的初级选手或者刚学计算机不太久,后面的内容可以暂时跳过。

    窄字符与宽字符

    窄字符和宽字符都是指对字符的编码,窄字符就是一个字符占有的空间只有一个字节,宽字符通常一个字符占用两个字节的空间,我们也常常说宽字符为UNICODE编码字符。

    我们前面所讲的读取文件,这些函数其实都是针对窄字符的,因为这些文件内容的编码都是窄字符编码,一个英文是一个字符,一个汉字是两个字符,它们都是一个字符占用一个字节。

    如果是宽字符的话,一个字符占用两个字节,每一个英文字符还是一个字符,一个中文汉字通常也是一个字符,但是它们都占用两个字节。我们把test.txt文件另存一下,存为UNICODE编码,用记事本的另存功能,选择UNICODE,如图所示。

     

    如果我们此时还是用前面的代码来读取test_unicode.txt文件,效果会是什么样呢?我们以read_text_by_getc来验证一下,结果如图所示。

    可以再次用一塌糊涂来形容,什么也不是了。

    这就涉及到另外的读取函数了,是专门针对宽字符的,主要也有这几个函数,与窄字符对应的函数分别为:

    wint_t fgetwc( FILE *stream );

      (since C95)

    wchar_t *fgetws( wchar_t * restrict str, int count, FILE * restrict stream );

      (since C99)

    int fwscanf( FILE *restrict stream,
                 const wchar_t *restrict format, ... );

    (since C99)

    int fwscanf_s( FILE *restrict stream,
                   const wchar_t *restrict format, ...);

    (5) (since C11)

     它们的用法和窄字符的用法完全一样,唯一的不同是它们都要求被读取的文件的内容是UNICODE即宽字符编码的。

    这里不做试验了,有的朋友如果有兴趣的话,自己可以试一试,看看效果。

     

    其它

    如果要学习VC++调试相关技术,可以学习

    https://edu.csdn.net/course/detail/28915

    如果要学习Linux gdb C/C++调试相关技术,可以学习

    https://edu.csdn.net/course/detail/28981

     

     

    《完》

     

    展开全文
  • c语言 文件读写

    2015-11-08 17:56:33
    文件重命名(使用下面这个函数时,文件必须关闭,否则失败) int rename(file1,file2) 成功返回0,失败返回非零 关闭文件 fclose(fp); 强制将缓冲区的数据写入文件(成功返回0,失败返回EOF) int fflush...
    #include<stdio.h>


    打开文件
    FILE *fp = fopen("myfile.txt","w");


    文件重命名(使用下面这个函数时,文件必须关闭,否则失败)
    int rename(file1,file2)  成功返回0,失败返回非零


    关闭文件
    fclose(fp);


    强制将缓冲区的数据写入文件(成功返回0,失败返回EOF)
    int fflush(fp);


    删除文件
    remove("file.txt")

    字符写入文件
    int fputc(int c,FILE *pfile)

    读取文件字符
    char chr;
    chr = fgetc(fp);


    将字符串写入文件
    int fputs(char *pstr,fp);


    从文本中读取字符串
    char *fgets(char *pstr,int nchars,fp)


    格式化文件输出和输入
    fprintf()
    fscanf()


    文件定位:


    找到目前位置
    long ftell(fp);


    设定位置
    int fseek(fp,long offset,int origin)
    origin有三个值 SEEK_SET(文件开头位置)、SEEK_CUR(当前位置)、SEEK_END(文件末尾)
    offset 指相对origin的偏移量
    展开全文
  • C语言文件读写操作

    千次阅读 2020-10-25 15:58:33
    c语言文件读写操作 介绍了文件指针FILE的使用,文件读写操作的一般函数

    c语言文件读写操作

    一、文件指针File

    1.定义

    1. FILE类型是系统预先设定的一种结构体指针
    2. FILE* 指针作为文件句柄,是文件访问的唯一标识,它由fopen函数创建,fopen打开文件成功,则返回一个有效的FILE*指针,否则返回空指针NULL
    3. 定义方式
      FILE *fp=fopen(char *filename,char *mode);

      FILE *fp;
      fp=fopen(char *filename,char *mode);

      FILE * fopen(char* filename,char* mode)
      filename:文件名,如“students.txt”。 相对路径
      mode:打开方式(读写方式,文件类型)

    2.文件类型分类

    1. 文本文件:这类文件以文本的ASCII、UNICODE(万国码)等编码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。
    2. 二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。

    3.文件打开方式

    1. "r"正文文件只读方式打开。文件不存在,则打开失败
    2. "w"正文文件只写方式打开。若文件不存在,则建立文件;若文件存在,则删除文件内容,重建空文件
    3. "a"正文文件添加方式。文件不存在,则建立文件
    4. "r+ ":正文文件读写打开,文件不存在,则打开失败
    5. "w+ " :正文文件读写方式打开,文件不存在,则建立文件

    4.文件打开

    #include <stdio.h>
    int main()
    {
        FILE *fp; /*文件指针*/
        fp=fopen("member.txt","rb");
        if(fp==NULL)
            printf("提示:文件未能成功打开");
        else
            printf("提示:文件已经打开");
        return 0;
    } 
    

    Warning!
    使用fopen时,但凡含r字母的打开方式,一定要加判断,文件是否打开成功,否则程序不会报告错误,会运行下去。如:

    FILE *fr; 
    fr=fopen("abc.txt","r"); 
    if(fr==NULL){
    printf("File not open!/n"); 
    

    5.文件关闭

    fclose(FILE *fp)
    一般地,fclose(fp)应与fopen配对使用,特别是含有写方式的文件,若不关闭,可能会造成文件数据丢失。

    二、一般读写函数

    字符的读写函数:fgetc()函数和fputc()函数
    字符串的读写函数:fgets()函数和fputs()函数
    数据块的读写函数,主要针对二进制文件:fread()函数和fwrite()函数
    格式化的读写函数,主要针对文本文件:fscanf()函数和fprintf()函数

    字符串读写

    1、fputs()函数

    格式:fputs(s,fp);
    功能:用来将一个字符串写入指定的文本文件。
    其中,fp为文件指针,s可以是字符数组名,字符型指针变量或字符串常量。该函数的功能是将字符串s写入由fp指向的文件中,字符串末尾的‘\0’字符不允写入。
    返回值:执行成功,返回所写的最后一个字符;否则,返回EOF。

    //fputs
    
    #include <stdio.h>
    #include <stdlib.h>
    void main(){
        FILE *fp;
        char s[][15]={"BeiJing","ShangHai","GuangZhou","NanJing","HangZhou"};
        if((fp=fopen("c:\\1\\wenjiu3.txt","w"))==NULL)
        /*只能相应文件,创建不了文件夹,fopen()函数会寻找相应位置文件夹然后在其中创建所需文件。
        当没有所需文件夹的时候,系统会自动跳转到NULL!*/
        {
            printf("Cannot open the file,strike any key to exit!\n");
            getchar();
            exit(0);
        }
        for(int i=0;i<6;i++){
            fputs(s[i],fp);
            fputs("\n",fp);
        }
        fclose(fp);
    }//输出在文件中的第六行,会出现“'jb”这个字符串
    

    2、fgets()函数

    格式:fgets(s,n,fp);

    功能:用于从指定的文件中读一个字符串到字符数组中。

    其中,s可以是字符型数组名或字符串指针,n是指定读入的字符个数;fp为文件指针。n是一个正整数,表示从文件中最多读取n-1个字符,并将字符串指针s定位在读入的字符串首地址。fgets()函数从文件中读取字符直到遇到回车符或EOF为止,函数会在最后一个字符后加上字符串结束标志’\0’;若有EOF,则不予保留。

    返回值:该函数如果执行成功,返回读取字符串;如果失败,则返回空指针NULL,这时,s中的内容不确定。

    //fgets()函数
    
    #include <stdio.h>
    #include <stdlib.h>
    void main(){
        FILE *fp;
        char s[6][15];
        if((fp=fopen("c:\\1\\wenjiu3.txt","r"))==NULL){
            printf("Cannot open the file,strike any key to exit!\n");
            getchar();
            exit(0);
        }
        for(int i=0;i<6;i++){
            fgets(s[i],15,fp);
            if(i%2==0)
                printf("%s",s[i]);
        }
        fclose(fp);
    }
    

    格式化读写

    1.fprintf()函数

    格式:fprintf(fp, format, arg1, arg2,….,argn);

    功能:fprintf()用来将输出项按指定的格式写入指定的文本文件中,其中格式化规定与printf()函数功能相似,所不同的只是fprintf()函数是将输出的内容写入文件中,而printf()函数则是在屏幕输出。

    其中,fp为文件指针,format为指定的格式控制字符串;arg1~argn为输出项,可以是字符、 字符串或各种类型的数值。该函数的功能是按格式控制字符串format给定的格式,将输出项arg1,arg2,……,argn的值写入fp所指向的文件中。

    返回值:如果函数执行成功,返回实际写入文件的字符个数;若出现错误,返回负数。

    fprintf()中格式控制的使用与printf()相同。
    例如:fprintf(fp,”r=%f,area=%f\n”,r,area);

    //fprintf()函数
    
    #include <stdio.h>
    #include <stdlib.h>
    void main(){
        FILE *fp;
        int data[1000];
        for(int i=0;i<1000;i++)
            data[i]=(rand()%1000);//产生0~999的随机整数
        if((fp=fopen("c:\\1\\wenjiu5.txt","w"))==NULL){
            printf("Cannot open the file,strike any key to exit!\n");
            getchar();
            exit(0);
        }
        for(i=0;i<1000;i++){
            if(i%20==0)
                fprintf(fp,"\n%5d",data[i]);
            else
                fprintf(fp,",%5d",data[i]);
            if((i+1)%20==0)
                fprintf(fp,"\n");
        }
        fclose(fp);
    
    }
    

    2、fscanf()函数

    格式:fscanf(fp,format,arg1,arg2,……,argn);

    功能:fscanf()用来按规定的格式从指定的文本文件中读取数据。它与scanf()函数的功能相似,都是按规定的格式读数据的函数,只是fscanf()函数读的对象不是键盘区,而是文件。

    其中,fp为文件指针,format为指定的格式控制字符串;arg1~argn为输入项的地址。该函数的功能是从文件指针fp所指的文本文件中读取数据,按格式控制字符串format给定的格式赋予输入项arg1,arg2,……,argn中。

    返回值:如果该函数执行成功,返回读取项目个数;如果遇到文件末尾,返回EOF;如果赋值失败,返回0.

    fscanf()中格式控制的使用与scanf()相同。
    例如:fprintf(fp,”%d,%d\n”,&a,&b);

    //fscanf()函数
    
    #include <stdio.h>
    #include <stdlib.h>
    void main(){
        FILE *fp;
        int data[1000];
        if((fp=fopen("c:\\1\\wenjiu5.txt","r+"))==NULL){
            printf("Cannot open the file,strike any key to exit!\n");
            getchar();
            exit(0);
        }
        for(int i=0;i<1000;i++){
            if(i%20==0)
                fscanf(fp,"\n%5d",&data[i]);
            else
                fscanf(fp,",%5d",&data[i]);
        }
        fseek(fp,0,SEEK_END);
        fprintf(fp,"\n\n");
        int j=0;
        for(i=0;i<1000;i++){
            {
                if(data[i]%7==0)
                {
                    if(j%20==0)
                        fprintf(fp,"%5d",data[i]);
                    if((j+1)%20==0) fprintf(fp,"\n");
                    j++;
                }
            }
            fclose(fp);
        }
    }
    

    结语

    第一次发表博客,还有点小激动,虽然不是原创,从网上几篇文章整理的,就是复习了一下c语言文字文件读写操作,也供自己以后回顾。

    展开全文
  • C语言文件读写命令

    2012-04-22 22:58:47
    C语言文件读写命令 一、文件的打开与关闭 二、文件的读写 【示例程序】 ……
  • c语言文件读写函数有:“fgetc”和“fputc”(字符读写函数)、“fgets”和“fputs”(字符串读写函数)、“freed”和“fwrite”(数据块读写函数)、“fscanf”和“fprinf”(格式化读写函数)。对文件的读和写是最常用的...
  • C语言文件读写操作,从文件读取数据
  • c语言 文件读写 适合初学者,最简单的应用。
  • C语言文件读写-文本文件写操作 在上一篇中介绍了如何读取文本文件 ... 这一篇将详细介绍如何写...《C语言文件读写-文本文件读操作》这篇文章介绍了什么是文本文件,以及如何打开文本文件的模式以及如何进行正确地读取
  • c语言文件读写概念

    2019-11-04 21:55:34
    6.1 c语言文件读写概念 文件分类 按文件的逻辑结构: 记录文件:由具有一定结构的记录组成(定长和不定长) 流式文件:由一个个字符(字节)数据顺序组成 按存储介质: ...
  • C语言文件读写模式参数 r: 以只读方式打开文件,该文件必须存在。 r+: 以可读写方式打开文件,该文件必须存在。 rb+: 读写打开一个二进制文件,只允许读写数据。 rt+: 读写打开一个文本文件,允许读和写。 w: 打开只...
  • ![图片说明](https://img-ask.csdn.net/upload/201706/12/1497237375_183997.png) ![图片说明]...明明文件位置也是对的,文件也存在,操作方法也是没有问题,怎么还是不对?
  • C++和C语言文件读写

    2019-04-19 18:03:22
    2.C语言文件读写 3.QT下文件读写 1.C++文件读写 ifstream:读取文件数据类 ofstream:写入文件数据类 fstream:读取和写入文件数据类 #include <iostream> #include <fstream> //写和读头文件 using ...
  • C语言文件读写-二进制文件写操作 先说说什么是二进制文件,二进制文件是相对于文本文件而言的,文本文件是由一行一行的字符的有序序列组成的。二进制文件就没有行的概念了,也是由有序的字符组成的,但是在写入数据...
  • C语言文件读写-判断文件是否结束 在读文件的时候,很重要的一个条件是:文件是否结束,因为文件已经结束了,就不用继续读文件了。 判断文件结束,有许多方式,比如读取文本文件和二进制文件就可以使用不同的方式,...
  • C语言文件读写(5)-文件位置相关 当打开一个文件以后,无论是读还是写,都有一个指示文件位置的这么一个东西,我们可以称之为文件的位置指示器或者文件位置指针,文件位置指示器指明了当前文件读或者写的位置...
  • C语言 文件读写的实现

    万次阅读 多人点赞 2019-04-26 11:55:33
    关于C语言文件读写,我将介绍下面这几种方式: 字符的读写:使用 fgetc() 函数 和 fputc() 函数; 字符串的读写:使用 fgets() 函数和 fputs() 函数; 格式化的读写(主要用于文本文件):使用 ...
  • C语言文件读写操作(详解)

    千次阅读 多人点赞 2020-07-21 23:02:51
    进行C语言文件读写时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流。 缓冲区 在程序执行时,所提供的额外内存,可用来暂时存放准备执行的数据。它的设置是为了提高...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 163,030
精华内容 65,212
关键字:

c语言文件读取

c语言 订阅