精华内容
下载资源
问答
  • C语言打开文件详解

    千次阅读 多人点赞 2020-02-28 14:10:09
    C语言中操作文件之前必须先打开文件;所谓“打开文件”,就是让程序和文件建立连接的过程。 打开文件之后,程序可以得到文件的相关信息,例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中,程序还...

    C语言中操作文件之前必须先打开文件;所谓“打开文件”,就是让程序和文件建立连接的过程。

    打开文件之后,程序可以得到文件的相关信息,例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中,程序还可以记录当前读写到了哪个位置,下次可以在此基础上继续操作。

    	标准输入文件 stdin(表示键盘)、标准输出文件 stdout(表示显示器)、标准错误文件 stderr(表示显示器)是由系统打开的,可直接使用。
    

    使用 <stdio.h> 头文件中的 fopen() 函数即可打开文件,它的用法为:

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

    filename为文件名(包括文件路径),mode为打开方式,它们都是字符串。

    fopen() 函数的返回值

    fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FILE 类型的结构体变量中,然后将该变量的地址返回。

    FILE 是 <stdio.h> 头文件中的一个结构体,它专门用来保存文件信息。

    如果希望接收 fopen() 的返回值,就需要定义一个 FILE 类型的指针。例如:

    FILE *fp = fopen("demo.txt", "r");
    

    表示以“只读”方式打开当前目录下的 demo.txt 文件,并使 fp 指向该文件,这样就可以通过 fp 来操作 demo.txt 了。fp 通常被称为文件指针。

    再来看一个例子:

    FILE *fp = fopen("D:\\demo.txt","rb+");
    

    表示以二进制方式打开 D 盘下的 demo.txt 文件,允许读和写。

    判断文件是否打开成功

    打开文件出错时,fopen() 将返回一个空指针,也就是 NULL,我们可以利用这一点来判断文件是否打开成功,请看下面的代码:

    FILE *fp;
    if( (fp=fopen("D:\\demo.txt","rb") == NULL ){
        printf("Fail to open file!\n");
        exit(0);  //退出程序(结束程序)
    }
    

    我们通过判断 fopen() 的返回值是否和 NULL 相等来判断是否打开失败:如果 fopen() 的返回值为 NULL,那么 fp 的值也为 NULL,此时 if 的判断条件成立,表示文件打开失败。

    在打开文件时一定要判断文件是否打开成功,因为一旦打开失败,后续操作就都没法进行了,往往以“结束程序”告终。

    fopen() 函数的打开方式

    不同的操作需要不同的文件权限。例如,只想读取文件中的数据的话,“只读”权限就够了;既想读取又想写入数据的话,“读写”权限就是必须的了。

    另外,文件也有不同的类型,按照数据的存储方式可以分为二进制文件和文本文件,它们的操作细节是不同的。

    在调用 fopen() 函数时,这些信息都必须提供,称为“文件打开方式”。最基本的文件打开方式有以下几种:
    在这里插入图片描述

    调用 fopen() 函数时必须指明读写权限,但是可以不指明读写方式(此时默认为"t")。

    读写权限和读写方式可以组合使用,但是必须将读写方式放在读写权限的中间或者尾部(换句话说,不能将读写方式放在读写权限的开头)。例如:

    	将读写方式放在读写权限的末尾:"rb"、"wt"、"ab"、"r+b"、"w+t"、"a+t"
    	
    	将读写方式放在读写权限的中间:"rb+"、"wt+"、"ab+"
    

    整体来说,文件打开方式由 r、w、a、t、b、+ 六个字符拼成,各字符的含义是:

    	r(read):读
    	
    	w(write):写
    	
    	a(append):追加
    	
    	t(text):文本文件
    	
    	b(banary):二进制文件
    	
    	+:读和写
    

    关闭文件

    文件一旦使用完毕,应该用 fclose() 函数把文件关闭,以释放相关资源,避免数据丢失。fclose() 的用法为:

    int fclose(FILE *fp);
    

    fp 为文件指针。例如:

    fclose(fp);
    

    文件正常关闭时,fclose() 的返回值为0,如果返回非零值则表示有错误发生。

    实例演示
    最后,我们通过一段完整的代码来演示 fopen 函数的用法,这个例子会一行一行地读取文本文件的所有内容:

    #include <stdio.h>
    #include <stdlib.h>
    
    #define N 100
    
    int main() {
        FILE *fp;
        char str[N + 1];
    
        //判断文件是否打开失败
        if ( (fp = fopen("d:\\demo.txt", "rt")) == NULL ) {
            puts("Fail to open file!");
            exit(0);
        }
    
        //循环读取文件的每一行数据
        while( fgets(str, N, fp) != NULL ) {
            printf("%s", str);
        }
       
        //操作结束后关闭文件
        fclose(fp);
        return 0;
    }
    
    展开全文
  • c语言打开文件写入[rps-include post=6557] [rps-include post = 6557] While learning C programming language one of the most exciting part is writing and reading a file. Because this operations creates ...
    c语言打开文件写入

    c语言打开文件写入

    [rps-include post=6557]

    [rps-include post = 6557]

    While learning C programming language one of the most exciting part is writing and reading a file. Because this operations creates something on the operating system we can see which is different from other examples. In this tutorial we will look different aspects of file operations.

    在学习C编程语言时,最令人兴奋的部分之一就是编写和读取文件。 因为此操作在操作系统上创建了某些内容,所以我们可以看到它与其他示例有所不同。 在本教程中,我们将研究文件操作的不同方面。

    stdio.h库 (stdio.h Library)

    As  we know C provides different type of features with libraries. Input and output related features are provided by the library named stdio.h . In order to run related file operations we should include this library like below. We generally put include like to the start of the code file like below.

    众所周知,C为库提供了不同类型的功能。 输入和输出相关的功能由名为stdio.h的库提供。 为了运行相关的文件操作,我们应该像下面这样包含该库。 我们通常将include放在代码文件的开头,如下所示。

    #include stdio.h
    

    开启档案 (Opening File)

    The first step to work with a file is opening it. Files can be opened by using fopen function. fopen function generally gets the filename and mode parameters.

    使用文件的第一步是打开它。 可以使用fopen函数打开文件。 fopen函数通常获取文件名和模式参数。

    fopen ("test.txt", "w+");
    

    fopen  function returns a handler back where we use FILE type variable for this.

    fopen函数返回一个处理程序,我们为此使用FILE类型变量。

    FILE * fp;
    

    Below we will create a file pointer named fp and open file named test.txt with w+ write and read mode .

    在下面,我们将创建一个名为fp的文件指针,并使用w+读写模式打开名为test.txt文件。

    #include <stdio.h> 
     
    int main() 
    { 
       FILE * fp; 
     
       fp = fopen ("test.txt", "w+"); 
        
       return(0); 
    }
    

    关闭文件 (Closing File)

    In previous part we have opened a file with fopen function. But the code provided there is not an efficient code because file handler do not closed which means file is not closed. Not closing a file can create performance or write problems. So after our operation is completed we should close the file with fclose function.

    在上一部分中,我们使用fopen函数打开了一个文件。 但是这里提供的代码不是有效的代码,因为文件处理程序没有关闭,这意味着文件没有关闭。 不关闭文件会导致性能下降或写入问题。 因此,在完成操作后,我们应该使用fclose函数关闭文件。

    fclose(fp);
    

    and complete code will be like below.

    完整的代码如下所示。

    #include <stdio.h> 
     
    int main() 
    { 
       FILE * fp; 
     
       fp = fopen ("test.txt", "w+"); 
     
       fclose(fp); 
     
       return(0); 
    }
    

    读取文件 (Reading File)

    One of the fundamental step for file operation is reading a file. There are different ways and modes to read a file but in this step we simply read a line. We will put this in a while loop and read to the end of file. Because we will read file so we will use read mode while opening the file with fopen function.

    文件操作的基本步骤之一是读取文件。 读取文件有不同的方式和模式,但是在这一步中,我们仅读取一行。 我们将其放入while循环中并读取到文件末尾。 因为我们将读取文件,所以在使用fopen函数打开文件时将使用read模式。

    LEARN MORE  For Loops In Windows With MS-DOS Command Prompt
    了解更多有关Windows中带有MS-DOS命令提示符的循环的信息

    We will provide the variable, str , we want to put grabbed string and the size to read which is 80 and the last one is the file pointer fp

    我们将提供变量str ,我们要放入抓取的字符串,读取的大小为80 ,最后一个是文件指针fp

    fgets(str,80,fp)
    

    And here fully working code where we use while to read line by line to the end of file. If end of file arrived the NULL value will be returned.

    这里是完全有效的代码,我们在此使用while逐行读取文件末尾。 如果文件末尾到达,则将返回NULL值。

    #include <stdio.h> 
     
    int main() 
    { 
       FILE * fp; 
     
       char str[80]; 
     
       fp = fopen ("test.txt", "r"); 
        
       while((fgets(str,80,fp))!=NULL) 
          printf("%s",str); 
     
       fclose(fp); 
        
       return(0); 
    }
    

    写文件 (Writing File)

    In previous steps we have learned how to open and close file. But the ultimate goal is not opening and closing files. We generally read or write to file. There are different ways to write a file but in this tutorial we will simply put some line to the file. We will use fputs function by providing the string and file pointer like below.

    在前面的步骤中,我们学习了如何打开和关闭文件。 但是最终目标不是打开和关闭文件。 我们通常读取或写入文件。 有多种写入文件的方法,但是在本教程中,我们将简单地在文件中添加一些行。 我们将通过提供如下所示的字符串和文件指针来使用fputs函数。

    fputs("Hi this is an example",fp);
    

    We can see the whole working example below.

    我们可以在下面看到整个工作示例。

    #include <stdio.h> 
     
    int main() 
    { 
       FILE * fp; 
     
       fp = fopen ("test.txt", "w+"); 
     
       fputs("Hi this is an example",fp); 
     
       fclose(fp); 
        
       return(0); 
    }
    

    [rps-include post=6557]

    [rps-include post = 6557]

    翻译自: https://www.poftut.com/c-file-operations-open-write-close-files/

    c语言打开文件写入

    展开全文
  • linux平台C语言打开文件

    千次阅读 2016-08-03 09:56:19
    /* 创建并打开文件 */  if (fd)  {  fputs("Hello, Software Weekly", fd); /* 写入Hello, software weekly字符串 */  fclose(fd);  }  fd = fopen("hello.txt", "r");  fgets(str, LENGTH, fd); /* 读取...
    #include <stdio.h>
    #include <stdlib.h>
    
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    int main(int argc ,char *argv[]){
        int fd;
        if(argc<2){
            puts("please input the open file pathname!\n");
            exit(1);
        }
        
        //如果flag参数里有O_CREAT表示,该文件如果不存在,系统则会创建该文件,该文件的权限由第三个参数决定,此处为0755
        //如果flah参数里没有O_CREAT参数,则第三个参数不起作用.此时,如果要打开的文件不存在,则会报错.
        //所以fd=open(argv[1],O_RDWR),仅仅只是打开指定文件
        if((fd=open(argv[1],O_CREAT|O_RDWR,0755))<0){
            perror("open file failure!\n");
            exit(1);
        }else{
            printf("open file %d  success!\n",fd);
    
        }
        close(fd);
        exit(0);
        
    }
    

    跨平台打开文件

    #include <stdio.h>
    #define LENGTH 100
    main()
    {
     FILE *fd;
     char str[LENGTH];
    
     fd = fopen("hello.txt", "w+"); /* 创建并打开文件 */
     if (fd)
     {
      fputs("Hello, Software Weekly", fd); /* 写入Hello, software weekly字符串 */
      fclose(fd);
     }
    
     fd = fopen("hello.txt", "r");
     fgets(str, LENGTH, fd); /* 读取文件内容 */
     printf("%s\n", str);
     fclose(fd);
    } 
    


    展开全文
  • 我想打开一个文件进行加密 但是弹出一个窗口来选择文件而不是直接打开 下面是main函数 、、、、、、、、、、、 int main () { FILE *inpt = fopen("D:\\123\\12.txt","r"); FILE *oupt = fopen("D:\\123\\21.txt...
  • c语言打开文件方式

    千次阅读 2014-04-17 23:45:21
    'r' 只读方式打开,将文件指针指向文件头,如果文件不存在,则File返回空。 'r+' 读写方式打开,将文件指针指向文件头,如果文件不存在,则File返回空。 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为...
    'r' 只读方式打开,将文件指针指向文件头,如果文件不存在,则File返回空。
    'r+' 读写方式打开,将文件指针指向文件头,如果文件不存在,则File返回空。
    'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE。
    'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE。
    展开全文
  • C语言 打开文件时改变文件大小

    千次阅读 2016-04-19 20:59:15
    方法一: FILE*fp; ...//即可将文件大小变为size大小,文件截断。 方法二: #include //包含ftruncate()头文件 #include //包含结构体FILE头文件 int main(void) { FILE *
  • C语言 打开文件open函数

    千次阅读 2018-12-20 12:55:22
    O_RDWR 以可读写方式打开文件. 上述三种旗标是互斥的, 也就是不可同时使用, 但可与下列的旗标利用OR(|)运算符组合. O_CREAT 若欲打开的文件不存在则自动建立该文件. O_EXCL 如果O_CREAT 也被设置, 此指令会去检查...
  • C语言打开文件的几种方式及区别

    千次阅读 2019-04-21 17:22:29
    打开一个文本文件,输出数据,若文件存在则文件长度清为0,即该文件内容会消失 建立新文件 a (追加) 向文本文件末尾添加数据,原来文件中的数据保留,新的数据添加到文件为,原文件EOF保留 建立新文件 rb...
  • c语言打开文件方式 socket 端口号

    千次阅读 2016-08-24 10:55:59
    r 以只读方式打开文件,该文件必须存在。 r+ 以读/写方式打开文件,该文件必须存在。 rb+ 以读/写方式打开一个二进制文件,只允许读/写数据。 rt+ 以读/写方式打开一个文本文件,允许读和写。 w 打开只写文件,若...
  • C语言打开文件,并把文件内容打印

    千次阅读 2016-04-14 00:19:59
    #include #include #include "stdafx.h" #include int main() {  char *pchBuf = NULL;  int nLen = 0; ... //打开文件  fseek(pF, 0, SEEK_END); //文件指针移到文件尾  nLen
  • 我是在C/C++控制台写的打开文件选择对话框,所以很多头文件需要先进行声明,不然功能无法使用 新声明头文件: #include <windows.h> #include <ShlObj.h> #include <stdio.h> #include <...
  • //定义通用文件打开对话框 TCHAR szOpenFileName[80 * MAX_PATH]; memset( szOpenFileName, 0, sizeof( szOpenFileName ) ); ZeroMemory( & ofn, sizeof( ofn ) ); //初始化OPENFILENAME结构参考文档二
  • 【C】C语言打开,读取文件

    千次阅读 2018-11-22 02:22:16
    文章目录C语言打开,读取文件一、明明白白我的心二、代码飞起来三、过程不重要,重点看结果 C语言打开,读取文件 一、明明白白我的心 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、...
  • 打开文件的方法:定义指针,使用函数fopen("路径“,“r”)进行读取,打开文件之后要判断是否打开成功。 总结一下:设指针,用函数,检验。 题目:文件expt.txt中每一行储存了一个表达式 样例输入: 1+1 6-2 样例...
  • 打开文件 参数1:文件的路经(相对于可执行文件的相对路径或绝对路径 参数2:文件的模式 r 读模式 w 写模式 a 追加模式 + 读写模式 b 二进制模式 文件存在 各种模式都可以用 文件不存在 读模式下会返回错误 写...
  • c语言文件打开权限

    千次阅读 2019-08-27 13:25:42
    fopen() 定义函数 FILE * fopen(const char * path,const char * ...r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若存在则覆盖,若不存在则建立。 w+ 打开可读写文...
  • 1.打开文件 /*打开文件,返回人数,将记录读入内存*/ int open() { int m=0; FILE *fp; if((fp=fopen("H:\\studentdata1.txt","r+"))==NULL) { printf("打开文件失败!"); return 0; } while(!feof(fp)) ...
  • C语言文件打开方式

    千次阅读 2019-03-31 19:00:51
    操作后面加“t”是表示打开文本文件 加“b”是表示打开二进制文件 什么都不加表示默认打开文本文件
  • C语言文件打开与关闭

    千次阅读 多人点赞 2018-11-29 10:39:58
    C语言文件打开与关闭 在C语言中,文件操作都是由库函数来完成的。 文件打开(fopen函数) fopen() 函数用来打开一个文件,它的原型为: FILE *fopen(char *filename, char *mode); filename为文件名(包括...
  • C语言文件打开方式简介

    千次阅读 2016-09-06 23:07:54
    1、“r”以只读方式打开一个文件; 2、“w”以只写方式打开一个文件; 3、“a”打开一个文件追加; 4、“rb”以只读方式打开一个二进制文件; 5、“rw”以只写方式打开一个二进制文件; 6、“ra”打开一个二...
  • 文件打开方式
  • C语言文件的操作

    万次阅读 多人点赞 2018-12-18 23:24:05
    前言在谭浩强的C语言设计的第10张讲了有关文件的知识, 以往我们写的C程序的数据都是由键盘输入的 现在我们要对文件进行操作。 文件是操作系统的基本单位。是我们专业领域的重要的一部分。 就拿我们的编译器来说...
  • C语言打开位图文件

    千次阅读 2009-10-15 11:35:00
    =0x4D42) {//不是BMP位图文件 fclose(fp); return; } //读位图头部 fread(&info.bmiHeader, sizeof(BITMAPINFOHEADER), 1, fp); //位图宽度 long width=info.bmiHeader.biWidth; //位图高度 long height=info....
  • C语言读写文件

    千次阅读 2014-03-14 12:41:19
    C语言库函数包括文件的打开、关闭、读、...打开文件 调用fopen打开文件 文件指针名=fopen(文件名,使用文件方式); PS:这里文件路径必须是带双斜杠\\ 其中, 1. 文件使用方式 意 义 “rt” 只读打开一个文本文件
  • C语言打开exe

    2021-01-07 22:13:38
    C语言弹窗打开一个exe 使用windows.h下的函数。 MessageBox() 第一个参数为0,表示依赖的窗口的编号,设为0就是系统弹出的;第二个参数是对话框的内容,第三个是对话框的标题,第四个是对话框的类型,设为0就可 ...
  • http://c.biancheng.net/view/407.html
  • C语言详解 FILE文件操作

    万次阅读 多人点赞 2018-07-20 09:00:53
    进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流。 1.2 缓冲区(Buffer): 指在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,054
精华内容 60,021
关键字:

c语言打开文件

c语言 订阅