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

    2017-11-28 23:07:48
    该代码采用C语言编程,通过文件路径读取文本文件,并保存在数组中。
  • C语言读取文件

    2016-06-14 22:41:05
    c语言文件操作,详细的给出了如何读取文本文件数据,以及存储数据到另外的文件
  • c语言读写文件

    2012-11-20 09:22:09
    总结了c语言读写文件的方法,非常适合初学者
  • C语言读写文件

    2014-12-17 17:49:16
    c语言读写文件,并输出log

           上一篇文章android JNI 实例 中,讲到了如何实现用一个JNI用来读写文件,但是只是实现了对接口的调用,并未写出在c文件中是怎样实现文件读写的,这篇文章将写出c语言的具体实现,把WriteFile方法的具体实现补充完整。

       jstringJava_com_example_bootanim_FileOPT_WriteFile(JNIEnv *env,
    
           jobjectthiz, jstring oldpath, jstring newpath){//oldFile ="/system/build.prop";
    
                         int from_fd;
    
                          int to_fd;
    
                         long file_len=0;
    
                         int ret=1;
    
                         char buffer[BUFFER_SIZE];
    
                         char *ptr;
    
           //下面是把string转换成const char *型,在c语言中openfile的函数是constchar *
    
           const char *oldfilea =(*env)->GetStringUTFChars(env, oldpath, 0);
    
                        const char *newfilea =(*env)->GetStringUTFChars(env,newpath,0);
    
                        ALOGI("jniooooffff:%s",oldfilea);
    
                       if((from_fd=open(newfilea,O_RDONLY | O_NOFOLLOW))==-1) {
    
                                 ALOGI("jniooooxxx from_fd fail");//c文件中的log输出,参照后面的做法
    
                                 return "0";
    
                       }
    
                      ALOGI("jniooooxxx to_fdopen");
    
                       if((to_fd=open(oldfilea,O_WRONLY|O_NOFOLLOW))==-1) {
    
                                   ALOGI("jniooooxxx to_fd= fail");
    
                                    return "0";
    
                       }
    
                      file_len=lseek(from_fd,0L,SEEK_END);
    
                      lseek(from_fd,0L,SEEK_SET);
    
                       ALOGI("jniooooxxxwhile");
    
                      while(ret) {
    
                                ret= read(from_fd, buffer, BUFFER_SIZE);
    
                                if(ret==-1){
    
                                             ALOGI("jniooooxxx ret==-1");
    
                                            return "0";
    
                                }
    
                                write(to_fd, buffer, ret);
    
                                file_len-=ret;
    
                                 bzero(buffer,BUFFER_SIZE);
    
                      }
    
                      ALOGI("jniooooxxxclose");
    
                      close(from_fd);
    
                      close(to_fd);
    
                      return (*env)->NewStringUTF(env," opecccccccc!");
    
        }


    关于jni输出log,参照下面做法:

        1.android.mk中加入LOCAL_STATIC_LIBRARIES:= libcutils liblog

        2..c文件中加入:

           #include<utils/Log.h>

           #include<stdlib.h>

        3.ALOGI("jniooooffff:%s",oldfilea);//jniooooffffTAGoldfilea是我们要输出的字符串。




          

    展开全文
  • 02功能之读写文件流操作(C语言实现读取文件指定一行) 1 C语言读取文件指定一行 // 读取文件指定一行 int ReadLine1(const char *fileName, char outBuf[], int n){ int whichLine = n; //指定要读取哪一行 int ...

    02功能之读写文件流操作(C语言实现读取文件指定一行)

    1 C语言读取文件指定一行

    // 读取文件指定一行
    int ReadLine1(const char *fileName, char outBuf[], int n){
    
    	int  whichLine = n;                //指定要读取哪一行
    	int  currentIndex = 1;             //当前读取的行
    
    	char buf[1024] = { 0 };            //临时 不能做返回值 防止局部数组被释放后非法访问内存
    
    	FILE *file;
    	int isOpen = fopen_s(&file, fileName, "r");
    	if (isOpen != 0) {
    		printf("文件打开失败\n");
    		return -1;
    	}
    
    	while (!feof(file)){
    
    		if (currentIndex == whichLine){
    			fgets(outBuf, 1024, file);     //读取一行  必须用数组
    			break;
    		}
    		fgets(buf, 1024, file);            //临时数组读取一行,并定位到下一行
    		currentIndex++;
    
    	}
    	fclose(file);
    
    	return 0;
    }
    

    2 额外提供一个从键盘读取数据,遇到换行符停止输入,返回数组大小的函数。

    // 从键盘读取 转行符停止 返回数组长度
    int ReadLine2(char buffer[]) {
    	char character;
    	int i = 0;
    
    	do
    	{
    		character = getchar();      // 每次从键盘获取一个字符 包括空格
    		buffer[i] = character;
    		++i;
    	} while (character != '\n');
    
    	buffer[i - 1] = '\0';           // 将换行符转成标志位,表示字符串结束
    
    	return i - 1;                   // 返回数组长度
    }
    
    
    展开全文
  • 1.以字符形式读写文件1) 字符读取函数 fgetc( )fgetc(文件指针); //从“文件指针”所指向的文件中读取一个字符该函数返回值为读取到的字符。每读取一个字符后,文件的当前读写位置指针就自动下移到下一个字符的位置...

    C语言提供了多个用于文件读写的标准函数。文件打开后,就可以将“文件指针”作为函数的参数对文件进行读写操作。

    1.以字符形式读写文件

    1) 字符读取函数 fgetc( )

    fgetc(文件指针); //从“文件指针”所指向的文件中读取一个字符

    该函数返回值为读取到的字符。每读取一个字符后,文件的当前读写位置指针就自动下移到下一个字符的位置(见图 1a) )。如果遇到文件结束,则返回文件结束标识符 EOF(其值为 -1)。例如,ch = fgetc(fp);表示从“文件指针”fp 所指向的文件中读取一个字符,将其赋值给变量 ch。

    8098a78efc1f96c0881dd2872fe33517.gif

    图 1:从文件中读取字符和数据

    2) 字符写入函数 fputc( )

    fputc(字符数据,文件指针); //将字符数据输出到“文件指针”所指向的文件中

    “字符数据”可以是字符常量也可以是字符变量。输出成功,函数返回输出的字符,否则返回符号常量 EOF。例如:

    ch = 'A';

    fputc(ch,fp);

    上面的代码表示将字符变量 ch 的值 ‘A’ 输出到“文件指针”fp 所指向的文件中。

    2. 格式化读写文件

    1) 使用 fscanf( ) 函数读取格式数据

    fscanf(文件指针,"格式控制字符串",读取变量地址列表);

    fscanf( ) 与 scanf( ) 的用法极其相似,唯一的不同之处就是 fscanf( ) 多一个“文件指针”参数,而且它是从“文件指针”所指向的文件中读取数据,而 scanf( ) 是从键盘输入获取数据。这两个函数的返回值为成功读取到的项目数。读取结束后,文件流的当前读写位置指针自动下移至下一个格式数据(见图 1b) )。

    例如:

    fscanf(fp,"%d",&x);

    上面的代码表示从“文件指针”fp 所指向的文件中读取一个整数值并保存到变量 x 中。

    2) 使用 fprintf( ) 函数读取格式数据

    fprintf(文件指针,"格式控制字符串",输出变量列表);

    fprintf( ) 与 printf( ) 的用法极其相似,唯一的不同之处就是 fprintf( ) 多一个“文件指针”参数,而且它是将数据写入“文件指针”所指向的文件中,而 printf( ) 是将数据输出至屏幕。

    例如:

    fprintf(fp,"%d\n",x);

    上面代码表示将整型变量 x 的值写入“文件指针”fp 所指向的文件中。

    3. 文件的当前读写位置指针

    文件打开后会有一个指针表示当前的读写位置。用 fgetc( ) 读取一个字符后,文件的读写位置指针会自动移动到下一个字符的位置;用 fscanf( ) 读取格式数据后,文件的读写位置指针则会自动移动到下一个格式数据的位置(见图 1b) )。

    此外,C语言还提供了一个标准函数 rewind( ),它可以将文件的当前读写位置指针重新定位到文件的开头。

    rewind(文件指针); //将文件的当前读写位置指针重新定位在文件的开头

    4. 文件结束标识

    C语言中,由文件结尾标识符“EOF”标识文件的结尾,在文件读写操作中用它来表示文件的结束。此外,C语言还提供了一个标准函数 feof( ),它可以判断文件当前读写位置指针是否到达文件末尾,如果在文件末尾,则返回 1;否则返回 0。

    feof(文件指针); //判断文件读写指针是否到达文件末尾,是,则返回 1

    例如:

    rewind(fp); //将文件的当前读写位置指针重新定位到文件开头

    printf(feof(fp)); //输出函数 feof(fp) 的值

    输出值为 0,因为函数 rewind(fp) 将 fp 所指向的文件当前读写位置指针设置到了文件开头,它并不在文件结尾,因而函数 feof(fp) 的值为 0。

    知识点总结

    表达式!feof(fp)为真表示尚未到达文件结尾;

    表达式(ch = fgetc(fp)) != EOF为真也表示尚未到达文件结尾。

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

    2013-04-16 22:41:55
    C语言实现度文件读取,有源代码。 一个简单的实例。 文件读写
  • ;文本文件的读写 二进制文件的读写 文件的定位与随机读取;定义文件指针 打开文件 读写文件 关闭文件;读写文件;读写文件;读写文件;读写文件;读写文件;读写文件;读写文件;
  • C语言读写文件到磁盘
  • C语言读写文件操作

    万次阅读 多人点赞 2018-12-28 20:05:11
    二、读写文件 1、字符的读写 2.字符串的读写 3.数据块的读写 4.格式化读写 三、关闭文件 C语言中对于文件的操作是通过指针来完成的,要注意,文件指针不是指向一段内存空间的,它实际上指向的是描述这个文件...

    目录

    一、打开文件

    二、读写文件

    1、字符的读写

    2.字符串的读写

    3.数据块的读写

    4.格式化读写

    三、关闭文件


    C语言中对于文件的操作是通过指针来完成的,要注意,件指针不是指向一段内存空间的,它实际上指向的是描述这个文件相关信息的一个文件结构体。

    声明文件指针变量的形式为:

    FILE *file;

    定义好一个文件指针变量后就需要初始化这个文件指针变量或者说是打开文件。

    一、打开文件

    打开文件通过fopen函数完成,比如

    file = fopen("1.txt","r+");

    fopen函数中有两个传入参数,第一个参数是文件的名称,比如“1.txt”,要注意,如果这个文件没有和你的程序处于同一目录下,需要写入全部路径,例如   "c:\\1\\1.txt";第二个参数为打开文件的方式,他可以从下面几个方式中打开

    文件的打开方式
    打开方式 含义 指定文件不存在时 指定文件存在时
    r 只读方式打开文本文件 出错 正常打开
    w 只写方式打开文本文件 建立新文件 文件原有内容丢失
    a 追加方式打开文本文件 建立新文件 在原有内容末尾追加
    r+ 读/写方式打开文本文件 出错 正常打开
    w+ 读/写方式创建新的文本文件 建立新文件 文件原有内容丢失
    a+ 读/追加方式建立新的文本文件 建立新文件 在原有内容末尾追加
    rb 只读方式打开二进制文件 出错 正常打开
    wb 只写方式打开二进制文件 建立新文件 文件原有内容丢失
    ab 追加方式打开二进制文件 建立新文件 在原有内容末尾添加
    rb+ 读/写方式打开二进制文件 出错 正常打开
    wb+ 读/写方式创建新的二进制文件 建立新文件 文件原有内容丢失
    ab+ 读/追加方式创建新的二进制文件 建立新文件 在原有内容末尾追加

    因此,在打开文件时,要根据你所需要的格式选择打开方式,比如当你没有文件,想要创建一个文件时可以选择 w+

    二、读写文件

    C语言中对于文件的读写主要分为五类,

    1. 字符的读写:fgetc()函数和fputc()函数
    2. 字符串的读写:fgets()函数和fputs()函数
    3. 数据块的读写:fread()函数和fwrite()函数
    4. 格式化读写:fscanf()函数和fprintf()函数
    5. 随机读写函数:fseek()、rewind()、ftell()

    1、字符的读写

    fputc()函数
    格式:fputc(c,fp);

    功能:用来将一个字符写入到文件中。在格式中fp是已经定义的文件指针变量;c为要写入的字符,可以是字符常量或字符型变量,该函数             是有返回值的。 
    返回值:如果执行成功,返回写入的字符;否则,返回EOF,(EOF是C语言编译系统定义的文本文件结束标志,其值为-1,十六进制表                示为0xff,在stdio.h中定义),表示写操作失败。
     

    #include "stdio.h"
    #include "stdlib.h"
    
    void main()
    {
        FILE *file;
        char c = 0;
        
    
        file = fopen("1.txt","w+");
        if(file == NULL){
            printf("文件打开错误!\n");
            exit(0);
        }
    
        c = 'A';
    
        fputc(c,file);
        fputc('\n',file);
    
    
        fclose(file);
    
    }

    要注意,fputc()函数中传入的第一个参数为字符,而不是字符的地址,第二个变量为文件指针。

    上述例程运行完毕后,1.txt文件中内容应该是c与一个换行

    c
    
    

    fgetc()函数

    格式: c=fgetc(fp);

    功能:用来从指定的文本文件中读取一个字符。其中,fp为文件指针,c为要写入的字符。该函数的功能是从指定的文件中读取一个字符,             并赋值给字符型变量c。 
    返回值:读取成功返回读取字符,读取错误或遇到结束标志EOF,返回EOF。

    #include "stdio.h"
    #include "stdlib.h"
    
    void main()
    {
        FILE *file;
        char c = 0;
        
        file = fopen("1.txt","r+");
        if(file == NULL){
            printf("文件打开错误!\n");
            exit(0);
        }
    
        c = fgetc(file);
        
        printf("文件中读取到的字符为:%c\n",c);
    
    
        fclose(file);
    
    }

    这样读取到的字符就是在 1.txt文件中存取的第一个字符,如果有一连串字符时,fgetc()函数会自动后移,例如1.txt文件中存有下面这些内容

    casdkwuhdkshdkahwudo

    那么,在下面这个例程中

    #include "stdio.h"
    #include "stdlib.h"
    
    void main()
    {
        FILE *file;
        char c = 0;
        
        file = fopen("1.txt","r+");
        if(file == NULL){
            printf("文件打开错误!\n");
            exit(0);
        }
    
        while(c != EOF){
            c = fgetc(file);
            printf("%c",c);
        }
    
    
        fclose(file);
    
    }

    那么屏幕上将输出

    casdkwuhdkshdkahwudo

    这是因为file这个文件指针变量会自动记录当前读取或者写入的位置,并且自动后移,因此如果你需要读取了一串字符后,又想回到文件开头进行读取,就需要该边文件指针的位置

    2.字符串的读写

    fputs()函数
    格式:fputs(s,fp);

    功能:用来将一个字符串写入指定的文本文件。其中,fp为文件指针,s可以是字符数组名,字符型指针变量或字符串常量。该函数的功能             是将字符串s写入由fp指向的文件中,字符串末尾的‘\0’字符不允写入。

    返回值:执行成功,返回所写的最后一个字符;否则,返回EOF。

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

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

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

    fputs()函数和fgets()函数类似于puts和gets函数,可以仿照他们使用。

    3.数据块的读写

    fread()
    格式:fread(char *ps,int len,int n,FILE *fp);

    功能:用来指定文件中一次读取由若干个数据项组成的一个数据块,存放到指定的内存缓存区中,数据块的大小取决于数据块中数据项大             小(字节数)和数据项的个数。其中ps是用来指向存放数据块内存缓冲区的首地址,len是用来指出数据块中数据项的大小的整型数,fp是一个指向被操作 文件的指针。 fread()函数一次读取数据块的大小等于len与n的乘积。 

    举例:要从fp指针所指向的文件中一次读取500个整数,存放到内存的buf缓存中,可以用下列语句实现这一功能: 

    fread(buf,sizeof(int),500,file);

    返回值:该函数正常返回值实际读取的数据项数,出错时返回NULL。
    fwrite()
    格式:fwrite(char *ps,int len,int n,FILE *fp);

    功能:fwrite()函数用来将指定的内存缓冲区的数据块内的数据项写入指定的文件中。所写入的数据块的大小是由数据项的大小和数据项个数决定的。其中的参数同fread()函数类似。

    返回值:该函数参数与fread()函数返回参数相同,函数正常返回值是实际写入文件中的数据项个数。

     

    fread()和fwrite()函数一般用于二进制文件的操作。

    4.格式化读写

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

    功能:fprintf()用来将输出项按指定的格式写入指定的文本文件中,其中格式化规定与printf()函数功能相似,所不同的只是fprintf()函数是将输出的内容写入文件中,而printf()函数则是在屏幕输出。其中,fp为文件指针,format为指定的格式控制字符串;arg1~argn为输出项,可以是字符、 字符串或各种类型的数值。该函数的功能是按格式控制字符串format给定的格式,将输出项arg1,arg2,…..,argn的值写入fp所指向的文件中。

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

    其实,fprintf()函数与printf函数一样的用法,只是在前面增加了一个发fp参数,即需要传入文件指针,printf是把字符按照格式打印到屏幕上,而fprintf是按照格式打印到文本中。

    #include "stdio.h"
    #include "stdlib.h"
    
    void main()
    {
        FILE *file;
    
        
        file = fopen("1.txt","r+");
        if(file == NULL){
            printf("文件打开错误!\n");
            exit(0);
        }
    
        fprintf(file,"姓名   成绩   班级\n");
        fprintf(file,"张三   78     1\n");
        fprintf(file,"李四   88     2\n");
    
    
        fclose(file);
    
    }

    那么在文本文件中会是

    姓名  成绩  班级
    张三  78    1
    李四  88    2

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

    功能:fscanf()用来按规定的格式从指定的文本文件中读取数据。它与scanf()函数的功能相似,都是按规定的格式读数据的函数,只是fscanf()函数读的对象不是键盘区,而是文件。其中,fp为文件指针,format为指定的格式控制字符串;arg1~argn为输入项的地址。该函数的功能是从文件指针fp所指的文本文件中读取数据,按格式控制字符串format给定的格式赋予输入项arg1,arg2,…..,argn中。

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

    例如,1.txt文件中存有下面内容

    123 45 56

    那么使用fscanf读取时

    int i = 0;
    fscanf(file,"%d",i);

    那么i读到的值就是123

    三、关闭文件

    在程序里面,如果我们打开一个文件后,在完成文件的操作后一定要将其关闭,防止产生其他破坏性的操作,可以用fclose关闭

    fclose(file);

     

     

    展开全文
  • C文件概述文件是指一组相关数据的有序集合。...也就是我们在C语言文件操作中用到的二进制和ASCII方式。二进制文件形式:把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。优点:可以节省外存空间和转换...
  • 本文主要介绍C语言 格式化读写文件,这里提供了关于格式化读写文件的基本资料及实现示例代码,有兴趣的小伙伴可以参考下,以便理解学习
  • C语言C语言读取文本文件

    万次阅读 多人点赞 2019-01-28 20:44:26
    文章目录【C语言C语言读取文本文件一 前言二 按字符读取文本文件1、程序实现一2、程序实现二三、按行读取文本文件1、程序实现一2、程序实现二四、说明 【C语言C语言读取文本文件 一 前言 &amp;amp;amp;nbsp;...
  • c语言读取文件信息 c语言读取文件信息 LINUX LINUX
  • 包含tiff格式图片读写所有文件:libtiff.lib,libtiff.dll和所有头文件。我用VC调用过,完全可以。
  • C语言操作EXCEL文件(读写)

    万次阅读 多人点赞 2017-02-26 18:18:37
    C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作: C语言读操作 C语言写操作 在之前需要使用C语言读取Excel文件内容的功能,查阅了很多资料,大部分是通过ODBC或者过OLE/...
  • c语言读取xml文件

    2014-12-15 22:29:21
    c语言 读取xml文件,相信对大家读取c语言文件有帮助
  • c语言文件读写

    2016-12-26 12:17:50
    c语言以文本、二进制模式读写文件与fopen_s()中的Mode无关,而与读、写函数相关。 fread、fwrite为二进制读写函数,而fprintf、fscanf为文本方式读写函数。
  • 主要介绍了c语言读取csv文件和c++读取csv文件示例,需要的朋友可以参考下
  • 打开文件的函数原型 FILE *fopen( const char * filename, const char * mode ); 读、写文件的几种模式 模式 描述 r(read) 具有文件的读权限。... 具有文件读写权限。 r:以只读的方式打.
  • C语言读取dat文件

    热门讨论 2013-04-16 22:46:44
    C语言文件读写。针对dat文件读写。 注意文件路径。
  • 文章主要例举一个c语言文件操作常用函数及读写文件的代码,感性趣的朋友可以看看。
  • 主要为大家详细介绍了C语言实现按行读写文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C语言智能读取文件参数,从txt中读取,还包含了结构体定义部分。

空空如也

空空如也

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

读取文件c语言

c语言 订阅