精华内容
下载资源
问答
  • C语言文件读写

    2017-09-20 11:30:02
    C语言文件读写1、由于C是缓冲写 所以要在关闭或刷新才能看到文件内容 2、电脑处理文本型和二进制型的不同 (因为电脑只认识二进制格式) 在C语言中写文件C //获取文件指针 FILE *pFile = fopen("1.txt", //...

    C语言文件读写

    1、由于C是缓冲写 所以要在关闭或刷新后才能看到文件内容
    2、电脑处理文本型和二进制型的不同 (因为电脑只认识二进制格式)

    在C语言中写文件

        //获取文件指针
        FILE *pFile = fopen("1.txt", //打开文件的名称
                            "w"); // 文件打开方式 如果原来有内容也会销毁
        //向文件写数据
        fwrite ("hello", //要输入的文字
                 1,//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
                 strlog("hello"), //单元个数 我们也可以直接写5
                 pFile //我们刚刚获得到的地址
                 );
        //fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写
        fflush(pFile); //数据刷新 数据立即更新 

    在C语言中读文件

    FILE *pFile=fopen("1.txt","r"); //获取文件的指针
    char *pBuf;  //定义文件指针
    fseek(pFile,0,SEEK_END); //把指针移动到文件的结尾 ,获取文件长度
    int len=ftell(pFile); //获取文件长度
    pBuf=new char[len+1]; //定义数组长度
    rewind(pFile); //把指针移动到文件开头 因为我们一开始把指针移动到结尾,如果不移动回来 会出错
    fread(pBuf,1,len,pFile); //读文件
    pBuf[len]=0; //把读到的文件最后一位 写为0 要不然系统会一直寻找到0后才结束
    MessageBox(pBuf);  //显示读到的数据
    fclose(pFile); // 关闭文件

    转自:http://www.cnblogs.com/LJWJL/archive/2012/10/05/2712117.html

    展开全文
  • 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);

     

     

    展开全文
  • 实现流程 打开文件 按照行的方式 循环读文件 解析每一行,若匹配key关键字,在进行value值的提取 提取value值需要 1去除前后空格 1级指针典型应用
    // cfg_op.h
    
    #ifndef _INC_CFG_OP_H
    #define _INC_CFG_OP_H
    
    #ifdef  __cplusplus
    extern "C" {
    #endif
    
    int GetCfgItem(char *pFileName /*in*/, char *pKey /*in*/, char * pValue/*in out*/, int * pValueLen /*out*/);
    int WriteCfgItem(char *pFileName /*in*/, char *pItemName /*in*/, char *pItemValue/*in*/, int itemValueLen /*in*/);
    
    
    //int CfgItem_Init(void *pHandle, int iType);
    //int GetCfgItem(void *pHandle /*in*/, char *pKey /*in*/, char * pValue/*in out*/, int * pValueLen /*out*/);
    //int WriteCfgItem(void *pFileName /*in*/, char *pItemName /*in*/, char *pItemValue/*in*/, int itemValueLen /*in*/);
    //int CfgItem_Destory(void *pHandle);
    
    #ifdef  __cplusplus
    }
    #endif
    
    #endif 
    

    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    
    
    int GetCfgItem(char *pFileName /*in*/, char *pKey /*in*/, char * pValue/*in out*/, int * pValueLen /*out*/);
    int WriteCfgItem(char *pFileName /*in*/, char *pItemName /*in*/, char *pItemValue/*in*/, int itemValueLen /*in*/);
    
    //实现流程
    //打开文件
    //按照行的方式 循环读文件
    //解析每一行,若匹配key关键字,在进行value值的提取
    //提取value值需要 1去除前后空格 1级指针典型应用
    
    #define  LineMaxLen 2048
    #define  KeyMaxLen 64
    
    int GetCfgItem(char *pFileName /*in*/, char *pKey /*in*/, char * pValue/*in out*/, int * pValueLen /*out*/)
    {
    	int		rv = 0;
    	FILE	*fp = NULL;
    	char	lineBuf[LineMaxLen];
    	char	*pTmp = NULL, *pBegin = NULL, *pEnd = NULL;
    
    	if (pFileName==NULL || pKey==NULL || pValue==NULL || pValueLen==NULL) 
    	{
    		rv = -1;
    		printf("GetCfgItem() err. param err \n");
    		goto End;
    	}
    
    	fp = fopen(pFileName, "r");
    	if (fp == NULL)
    	{
    		rv = -2;
    		printf("fopen() err. \n");
    		goto End;
    	}
    	while (!feof(fp))
    	{
    		//读每一行
    		memset(lineBuf, 0, sizeof(lineBuf));
    		pTmp = fgets(lineBuf, LineMaxLen, fp);
    		if (pTmp == NULL) 
    		{
    			break;
    		}
    
    		//不含=, 非配置项
    		pTmp = strchr(lineBuf, '=');
    		if (pTmp == NULL)
    		{
    			continue;
    		}
    		//key是否在本行
    		pTmp = strstr(lineBuf, pKey);
    		if (pTmp == NULL)
    		{
    			continue;
    		}
    		
    		//调整到=右边,取value准备
    		pTmp = strchr(lineBuf, '=');
    		if (pTmp == NULL)
    		{
    			continue;
    		}
    		pTmp = pTmp + 1;
    
    		//获取value 起点
    		while (1) 
    		{
    			if (*pTmp == ' ')
    			{
    				pTmp ++ ;
    			} 
    			else
    			{
    				pBegin = pTmp;
    				if (*pBegin == '\n')
    				{
    					//没有配置value
    					printf("配置项:%s 没有配置value \n", pKey);
    					goto End;
    				}
    				break;
    			}
    		}
    		
    		//获取valude结束点
    		while (1) 
    		{
    			if ((*pTmp == ' ' || *pTmp == '\n'))
    			{
    				break;
    			}
    			else 
    			{
    				pTmp ++;
    			}
    		}
    		pEnd = pTmp;
    
    		//赋值
    		*pValueLen = pEnd-pBegin;
    		memcpy(pValue, pBegin, pEnd-pBegin);
    		break;
    	}
    
    End:
    	if (fp != NULL)
    	{
    		fclose(fp); 
    	}
    	
    	return rv;
    }
    
    //实现流程
    //循环读每一行,检查key配置项是否存在 若存在修改对应value值
    //若不存在,在文件末尾 添加 "key = value"
    //难点:如何修改文件流中的值
    
    int SetCfgItem(char *pFileName /*in*/, char *pKey /*in*/, char * pValue/*in*/, int ValueLen /*in*/)
    {
    	int		rv = 0, iTag = 0, length = 0;
    	FILE	*fp = NULL;
    	char	lineBuf[LineMaxLen];
    	char	*pTmp = NULL, *pBegin = NULL, *pEnd = NULL;
    	char	filebuf[1024*8] = {0};
    	
    	if (pFileName==NULL || pKey==NULL || pValue==NULL) 
    	{
    		rv = -1;
    		printf("SetCfgItem() err. param err \n");
    		goto End;
    	}
    	
    	fp = fopen(pFileName, "r+");
    	if (fp == NULL)
    	{
    		rv = -2;
    		printf("fopen() err. \n");
    		//goto End;
    	}
    
    	if (fp == NULL)
    	{
    		fp = fopen(pFileName, "w+t");
    		if (fp == NULL)
    		{
    			rv = -3;
    			printf("fopen() err. \n");
    			goto End;
    		}
    	}
    	
    	fseek(fp, 0L, SEEK_END); 
    	//获取文件长度;
    	length = ftell(fp);
    
    	fseek(fp, 0L, SEEK_SET);
    	
    	if (length > 1024*8) 
    	{
    		rv = -3;
    		printf("文件超过1024*8, nunsupport");
    		goto End;
    	}
    	
    	while (!feof(fp))
    	{
    		//读每一行
    		memset(lineBuf, 0, sizeof(lineBuf));
    		pTmp = fgets(lineBuf, LineMaxLen, fp);
    		if (pTmp == NULL) 
    		{
    			break;
    		}
    	
    		//key关键字是否在本行
    		pTmp = strstr(lineBuf, pKey);
    		if (pTmp == NULL)
    		{
    			strcat(filebuf, lineBuf);
    			continue;
    		}
    		else
    		{
    			sprintf(lineBuf, "%s = %s\n", pKey, pValue);
    			strcat(filebuf, lineBuf);
    			//若存在key
    			iTag = 1; 
    		}
    	}
    
    	//若不存在 追加
    	if (iTag == 0) 
    	{
    		fprintf(fp, "%s = %s\n", pKey, pValue);
    	}
    	else //若存在
    	{
    		if (fp != NULL) 
    		{ 
    			fclose(fp); 
    			fp = NULL; //避免野指针
    		}
    
    		fp = fopen(pFileName, "w+t");
    
    		if (fp == NULL)
    		{
    			rv = -4;
    			printf("fopen() err. \n");
    			goto End;
    		}
    		fputs(filebuf, fp);
    		//fwrite(filebuf, sizeof(char), strlen(filebuf), fp);
    	}
    	
    End:
    	if (fp != NULL)
    	{
    		fclose(fp); 
    	}
    	return rv;
    }
    

    展开全文
  • C语言专项试题 文件一、填空题1....3. C程序中对普通文件进行读写操作,必须先 ,操作再 。4. 在C语言中,文件操作都是由标准库函数来完成的,对应的头文件是 。5. 用 方式打开一个文件时,该...

    C语言专项试题 文件

    一、填空题

    1. C语言中规定的标准文件有三个,即 、 和 。

    2. 指向C语言中规定的标准文件的指针分别是: 、 和 。

    3. C程序中对普通文件进行读写操作,必须先 ,操作后再 。

    4. 在C语言中,文件操作都是由标准库函数来完成的,对应的头文件是 。

    5. 用 方式打开一个文件时,该文件必须已经存在,且只能从该文件读数据。

    6. 在对文件存在的过程中,若要求文件的位置回到文件的开头,应当调用的函数是 函数。

    二、选择题

    1. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是 。

    A.2和2B.2和5C.5和2D.5和5

    2. 若执行fopen函数时发生错误,则函数的返回值是 。

    A.地址值 B.0 C.1 D.EOF

    3. 若要用fopen函数打开一个新的二进制文件,该文件既要能读也能写,则文件打开方式字符串应是 。

    A."ab+" B."wb+" C."rb+" D."ab"

    4. 函数ftell的作用是 。

    A.得到流式文件中的当前位置。B.移动流式文件的位置指针。

    C.初始化流式文件的位置。 D.以上答案均正确。

    5. 系统的标准数入文件是指 。

    A.键盘 B.显示器 C.软盘 D.硬盘

    6. fscanf函数的正确调用形式是 。

    A.fscanf(fp,格式字符串,输出表列)。

    B.fscanf(格式字符串,输出表列,fp)。

    C.fscanf(格式字符串,文件指针,输出表列)。

    D.fscanf(文件指针,格式字符串,输入表列)。

    7. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是 。

    A.只写 B.追加

    C.读或读写 D.答案b和c都正确

    8. 函数调用语句 fseek(fp,-20L,2);的含义是 。

    A.将文件位置指针移到距离文件头20个字节处。

    B.将文件位置指针从当前位置向后移动20个字节。

    C.将文件位置指针从文件末尾处后退20个字节。

    D.将文件位置指针移到离当前位置20个字节处。

    9. 利用fseek函数可实现的操作 。

    A.fseek(文件类型指针,起始点,位移量)。

    B.fseek(fp,位移量,起始点)。

    C.fseek(位移量,起始点,fp)。

    D.fseek(起始点,位移量,文件类型指针)。

    10. fgets(str,n,fp)的函数的概念是从文件中读出字符串存如str,以下叙述正确的是 。

    A.n代表最多能读出n个字符串。B.n代表最多能读出n个字符。

    C.n代表最多能读出n-1个字符串。D.n代表最多能读出n-1个字符。

    11. 下列叙述正确的是 。

    A.EOF只能作为文本文件的结束标志,feof()则可以判断文本文件和二进制文件的结束标志。

    B. feof()只能判断文本文件的结束标志,EOF则可以作为文本文件和二进制文件的结束标志。

    C.EOF只能作为文本文件的结束标志,feof()只能判断二进制文件的结束标志。

    D.EOF只能作为二进制文件的结束标志,feof()只能判断文本文件的结束标志。

    12. 设已正确打开一个已经存在的文本文件,文件中原有数据为abcdef,新写入的数据为xyz;若文件中的数据变为xyzdef,则该文件打开的方式是 。

    A.w B.w+ C.a+ D.r+

    13. 若fp为文件指针,且文件已正确打开,以下语句的输出为 。

    fseek(fp,0,SEEK_END);

    i=ftell(fp);

    printf("i=%d",i);

    A.所指文件的记录长度。

    B.所指文件的长度,以字节为单位。

    C.所指文件的长度,以比特为单位。

    D.所指当前文件的位置,以字节为单位。

    14. 文件函数rewind()的概功能是 。

    A.使文件fp的位置指针指向文件开始。

    B.使文件fp的位置指针指向文件末尾。

    C.使文件fp的位置指针指向文件中间。

    D.使文件关闭。

    15. 以下叙述不正确的是 。

    A.C语言中的文本文件以ASCII码形式存储数据。

    B.C语言中对二进制文件的访问速度比文本文件快。

    C.C语言中,随

    展开全文
  • fseek(文件指针,long型便宜量, 起始点);其中起始点有3种 ,SEEK_SET表示文件首,数字为0。SEEK_CUR为文件中,数字为1。SEEK_END为文件尾,数字为2。下边举例代码问实现将文件2中的内容复制到文件1内容的后面。#...
  • c语言读写文件fopen

    千次阅读 2013-08-15 19:56:13
    首先介绍两个函数: /*  函数功能:打开一个文件  函数原型:FILE * fopen... 返回值:文件顺利打开,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。  一般而言,
  • 今天给大家分享一下如何在C语言中,利用文件读写操作,寻找出自己输入文件中的两个最短字符串的方法!!!一、思路分析根据题目分析,我们可以知道,题目是要求我们利用C语言,先创建一个文件,然后在控制台,也就是...
  • C语言提供了多个用于文件读写的标准函数。文件打开,就可以将“文件指针”作为函数的参数对文件进行读写操作。1.以字符形式读写文件1) 字符读取函数 fgetc( )fgetc(文件指针); //从“文件指针”所指向的文件中读取...
  • C语言文件提高

    2021-01-15 08:42:29
    C语言文件提高 一、文件相关概念 1.文件的概念 2.流的概念 文本流 二进制流 二、文件的操作 1.文件流总览 2.文件指针 3.文件缓冲区 4.文件打开关闭 文件打开(fopen) 文件关闭(fclose) 5.文件读写函数...
  • C语言文件读写

    2011-03-25 20:07:00
    (1)关闭文件 打开(fopen)一个文件,一定要记得关闭(fclose),...用fclose函数关闭文件,可以避免这个问题,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量。(2)C文件边读边写 首先以读写
  • 转自:http://hi.baidu.com/wengjiang000/item/867ead5da7d95c10abf6d736通常文件打开,读写位置按先后顺序.但有时你想变动读写位置,例如重新从...fseek 用于二进制方式打开的文件,移动文件读写指针位置.fseek(in,...
  • C语言文件操作

    2020-07-23 21:32:05
    文章目录一、文本数据和二进制1、文本数据2、二进制数据3、文本文件和二进制文件二、打开文件1、文件指针2、打开文件3、关闭文件4、注意事项三、文本文件的读写1、向文件中写入数据2、从文件中读取数据四、二进制...
  • 返回值:文件顺利打开,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。 一般而言,打开文件会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法...
  • 参数作用:第一个参数为文件指针,第二个参数为格式控制参数,第三个参数为地址参数列表,两个参数和返回值与函数scanf()相同。 fprintf()函数用于指定格式像文件写数据 函数原型为: int fprintf(FILE *fp, ...
  • 代码如下,可自行设置传输指针空间大小,修改宏定义SIZE值即可,其余的看注释,底部附执行流程图与拷贝后文件对比。 #include "stdio.h" #include "stdlib.h" #include "string.h" #define SIZE (1024*1024) //拷贝...
  • 第10章C语言文件.ppt

    2020-10-25 09:21:55
    第 10 章 C 语言文件 本章要点 文件的概念 文件指针 文件打开与关闭 文件读写操作 文件定位 学习方法建议 学习本章内容时首先要理解文件的概念及分类然 掌握文件指针及文件位置指针的区别在此基础上学习 文件的...
  • 因为在C语言中对流式文件进行操作时,打开文件后,有一个读写位置指针,记录的是读写时在文件中的位置,其初始状态与打开方式有关。r、r+方式打开时,它指向文件头;w、w+方式打开时,也指向文件头(注意:虽然读写...
  • 那么我们在用各个函数对所谓的“文件指针”进行操作时,本质上是不是函数通过获取文件指针所指向的文件信息内部的数据,才进行真正意义上的文件操作的吧?比方说读写时候的文件内部的那个一位一位移动的指针其实是...
  • 注:文件指针指的是读写文件时的位置,这个位置是离文件开头的距离,本质上是一个整数 参数: stream:要操作的文件流 offset:相对于基准的偏移(负数向前偏移,正数向偏移) whence:基准 SEEK_CUR:当前位置 ...
  • 二进制写文件中用到fwrite函数,这个函数对文件进行写操作的时候写进去的数据就是二...读文件操作代码中用到了fseek函数,fseek可以定位到指针指向文件的任意位置,格式: int fseek(FILE *stream, long offset, int
  • C语言文件操作-1

    2019-10-30 09:48:02
    文件的打开操作指定的文件在内存上分配一个file结构区,并以指针返回,可以对这个指针来完成对文件读写操作。 函数参数:文件名,操作方式; 操作方式:r—只读打开; w—只写打开; a—指针指向文件末尾打开...
  • 函数说明 fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。 此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。 关闭文件 fclose 相关函数 close,fflush,...
  • 写完「C语言」单链表/双向链表的建立/遍历/插入/删除,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入、输出。其实,就算不...
  • 以下内容均为自用,不喜误喷一、读取a文件写入b文件1、题目说明:读取 “D:\软件:\cd文件:\文件操作:\测试数据.txt” 的数据并进行显示,按从小到大排序存入 “D:\软件:\cd文件:\文件操作:\排序数据.txt” 中2、...
  • 要对txt文件进行读取首先要先打开一个txt文件,这时需要用到fopen...文件顺利打开指向该流的文件指针将会被返回。如果文件打开失败则返回NULL。eg: char *txtPath="D:\\wavcs\\biaozhun.txt"; FILE *fp; fp=fo
  • 读取 “D:\软件:\cd文件:\文件操作:\测试数据.txt” 的数据并进行显示,按从小到大排序存入 “D:\软件:\cd文件:\文件操作:\排序数据.txt” 中 2、思路 step1:打开两个文件,用FILE*类型的指针 fa,fb指向两文件...
  • 通常文件打开,读写位置按先后顺序.但有时你想变动读写位置,例如重新从某处起,...fseek 用于二进制方式打开的文件,移动文件读写指针位置. fseek(in,-1L,1); -- 文件流in, 零点为当前指针位置,SEEK_CUR 就是 1, -1...
  • 写完「C语言」单链表/双向链表的建立/遍历/插入/删除,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入、输出。 其实,就算不...

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

c语言文件读写后文件指针

c语言 订阅