知识问答

c语言程序设计文件操作方法示例

“C语言程序设计文件操作方法示例(CreateFile和fopen)”是关于如何在C语言中使用CreateFile和fopen函数进行文件操作的攻略。下面将分别介绍CreateFile和fopen函数的使用方法,并提供两个示例说明。

CreateFile函数的使用方法

CreateFile函数是Windows操作系统中的一个API函数,用于创建或打开文件。其函数原型为:

HANDLE CreateFileA(  LPCSTR                lpFileName,  DWORD                 dwDesiredAccess,  DWORD                 dwShareMode,  LPSECURITY_ATTRIBUTES lpSecurityAttributes,  DWORD                 dwCreationDisposition,  DWORD                 dwFlagsAndAttributes,  HANDLE                hTemplateFile);

其中,参数的含义如下:

  • lpFileName:要创建的文件名。
  • dwDesiredAccess:请求访问的方式,如读取、写入、读取和写入等。
  • dwShareMode:共享模式,如允许其他进程打开文件或允许读取、写入等。
  • lpSecurityAttributes:Security结构指针。
  • dwCreationDisposition:创建方式,如新建一个文件、打开一个已有文件等。
  • dwFlagsAndAttributes:文件属性,如隐蔽、设备属性等。
  • hTemplateFile:用于设置文件的属性。

下面是CreateFile函数的示例代码:

#include <windows.h>#include <stdio.h>int main(){    HANDLE hFile = INVALID_HANDLE_VALUE;    DWORD  dwBytesRead;    DWORD  dwBytesWritten;    CHAR   szText[] = "This is a test file.";    hFile = CreateFile("test.txt",                       GENERIC_ALL,                       0,                       NULL,                       CREATE_ALWAYS,                       FILE_ATTRIBUTE_NORMAL,                       NULL);    if (hFile == INVALID_HANDLE_VALUE){        printf("CreateFile failed (%d)\n", GetLastError());        return 1;    }    if (!WriteFile(hFile, szText, sizeof(szText), &dwBytesWritten, NULL)){        printf("WriteFile failed (%d)\n", GetLastError());        CloseHandle(hFile);        return 1;    }    printf("%d bytes written to file\n", dwBytesWritten);    CloseHandle(hFile);    return 0;}

这个示例创建了一个名为test.txt的文件,并将一个字符串写入其中。如果文件不存在,则会创建一个新的文件;如果文件存在,则会先清空文件内容,再对其写入。

fopen函数的使用方法

fopen函数是C标准库中的一个函数,用于打开文件。其函数原型为:

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

其中,filename是要打开的文件的文件名,mode可以是以下几种:

  • "r":只读方式打开文件,文件必须存在。
  • "w":写入方式打开文件,如果文件存在,则清空文件内容,如果文件不存在,则创建一个新文件。
  • "a":追加方式打开文件,在文件末尾添加内容,如果文件不存在,则创建一个新文件。
  • "r+":读写方式打开文件,文件必须存在。
  • "w+":读写方式打开文件,如果文件存在,则清空文件内容,如果文件不存在,则创建一个新文件。
  • "a+":读写方式打开文件,在文件末尾添加内容,如果文件不存在,则创建一个新文件。

下面是fopen函数的示例代码:

#include <stdio.h>int main(){    FILE *fp;    char ch = 'A';    fp = fopen("test.txt", "w");    if(fp == NULL){        printf("File open error.");        return 1;    }    while(ch <= 'Z'){        fputc(ch, fp);        ch++;    }    fclose(fp);    return 0;}

这个示例打开一个名为test.txt的文件,并将从A到Z的26个字母写入其中。如果文件存在,则清空文件内容,如果文件不存在,则创建一个新文件。

综上所述,CreateFile函数和fopen函数都是进行文件操作的常用函数,具体使用方法可以根据需要选择。其中,CreateFile函数是Windows操作系统中的API函数,而fopen函数是C标准库函数。