c语言文件读写简单总结

c语言文件读写:
需要用到stdio.h

(一)如何打开文件,创建文件,关闭文件,删除文件

FILE *fopen(const char *filename, const char *mode);
如果打开成功,返回对应文件的文件指针
如果打开失败,返回NULL指针
mode为访问文件的模式
filename为要打开的文件名字符串

"r" 打开文件,仅读  如果文件不存在,则打开失败
"w" 创建新文件仅写入    如果文件已存在,则清空后写入
"a" 打开文件附加写入    若不存在,则创建新文件写入
"a+" 文件读和附加写入 若存在,则可读和附加写入,若不存在,则创建文件
"r+"    文件读写    若文件不存在,则打开失败
"w+"    创建新文件读写  若存在,则清空后写入

使用int fclose(FILE *stream)关闭文件
若关闭成功,返回一个0值,否则返回一个非0值

采用 fcloseall()函数关闭程序中打开的多个文件
它将关闭所有在程序中打开的文件。 int fcloseall(); 该函数将关闭所有
已打开的文件,将各文件缓冲区未装满的内容写到相应的文件中去,接着释放
这些缓冲区,并返回关闭文件的数目。如关闭了4个文件,
则当执行: n=fcloseall(); 时,n应为4

int remove(const char *_Filename)用来删除文件。
成功返回0,失败返回-1

(二)如何获得文件读写的位置,如何判断是否读到了文件结束

使用feof(FILE *stream)来判断是否到了文件尾,若到了则返回非0值(返回的非0值为-1,通常与EOF(宏定义为-1的常量)比较),没到则
返回0

或者使用ferror()来判断是否出错,如果出错返回非0值。(用来判断之前的文件操作是否在文件中留下错误信息)

注意:在c语言里面,0被当做逻辑值false,非0值被当做逻辑值true
注意:EOF不一定都是1,依照系统有所不同
注意:feof()判断到了文件尾返回不一定是-1,不一定是EOF,还可能是16(笔者在vscode上测试,用的编译器是mingw64),为什么呢?


(三)文件读写


单个字符的读写:


    使用int fgetc(FILE *stream),该函数会从文件指针指定的文件中读取一个
    字符,然后返回该字符(或者说返回该字符对印的ascll码值),如果当时文件指
    针指到文件尾,即遇到文件结束标志EOF(其对应值为-1),则该函数返回一个-1,
    函数中常用检查该函数返回值是否为-1来判断是否已经读到了文件尾。
    
    注意:fgetc用来读取单个字符的时候用char类型来装返回值,判断是否读到文
    件尾的时候,却要用int类型来接收返回值,因为char类型无法用==来与EOF(
    实际是-1)比较

    用int fputc(int ch,FILE *Stream)来把ch写入文件,写入到指定文件指针
    指向位置的后面。
        
        注意事项:

        特殊文件指针:stdin为标准输入流,stdout为标准输出(显示器)流

        fputc(ch,stdout);语句会把ch写到控制台上。

        在TC端,putchar(c)相当于fputc(c,stdout);getchar()相当于fgetc(stdin)

字符串的读写:

    char *fgets(char *string,int n,FILE *stream)
    它读取指定文件中n-1个字符,读到由指针string指定的字符数组中去,并且
    在结尾加上'\0',fgets()函数执行完后,返回一个指向该串的指针;注意该函
    数读到'\n'就停止,而不管是否达到数目要求。
    如果执行成功,则返回一个指向该串的指针;如果读到文件尾或出错,则均返回
    一个空指针NULL  

    char *gets(char *s)
    该函数执行时,只要没有遇到换行符或者文件结束标志,就会一直读下去,因此
    需要用户注意控制

    int fputs(char *string,FILE *stream)
    在指定文件写入一个由string指向的字符串,'\0'不写入文件。

    int fprintf(FILE *stream,char *format,variable-list)
    在指定文件按照指定格式写入指定字符串

    int fscanf(FILE *stream,char *format,variable-list)
    在指定文件按照指定格式读出指定内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 文件C语言中非常常见的操作。以下是一个简单文件操作的示例代码: ```c #include <stdio.h> int main() { // 文件 FILE *fp = fopen("example.txt", "w+"); if (fp == NULL) { printf("Failed to open file.\n"); return 1; } fprintf(fp, "Hello, world!\n"); fclose(fp); // 文件 fp = fopen("example.txt", "r"); if (fp == NULL) { printf("Failed to open file.\n"); return 1; } char buffer[1024]; while (fgets(buffer, 1024, fp)) { printf("%s", buffer); } fclose(fp); return 0; } ``` 上述代码中,我们使用了 `fopen` 函数打开了一个名为 `example.txt` 的文件,并指定了文件打开模式为 `w+`,表示以方式打开文件。如果文件打开失败,我们就输出一条错误信息,并返回 1。接着,我们使用 `fprintf` 函数向文件入了一个字符串。最后,我们使用 `fclose` 函数关闭了文件。 接下来,我们又使用了 `fopen` 函数打开了同一个文件,并指定了文件打开模式为 `r`,表示以只方式打开文件。如果文件打开失败,我们就输出一条错误信息,并返回 1。接着,我们使用 `fgets` 函数文件中的每一行,并将其保存在 `buffer` 数组中。最后,我们使用 `printf` 函数将 `buffer` 中的内容输出到控制台中。最后,我们再次使用 `fclose` 函数关闭了文件。 需要注意的是,以上代码中使用的是 `fprintf` 和 `fgets` 函数,它们与 `printf` 和 `scanf` 函数非常类似,只不过它们需要指定要文件对象。此外,我们还需要注意在文件时,要使用 `fgets` 函数而不是 `fscanf` 函数,因为前者可以取一整行,而后者只能取单个单词。 ### 回答2: 文件操作是C语言中常用的操作之一,通过文件操作可以实现数据的持久化存储和取。下面是一个简单C语言文件操作的示例代码: ```c #include <stdio.h> int main() { // 定义文件指针 FILE *file; // 打开文件并判断是否成功打开 file = fopen("data.txt", "w"); if (file == NULL) { printf("文件打开失败\n"); return 1; } // 入数据 fprintf(file, "Hello, world!"); // 关闭文件 fclose(file); // 重新打开文件取数据 file = fopen("data.txt", "r"); if (file == NULL) { printf("文件打开失败\n"); return 1; } // 取数据并输出到控制台 char buffer[100]; while (fgets(buffer, sizeof(buffer), file)) { printf("%s", buffer); } // 关闭文件 fclose(file); return 0; } ``` 上述代码首先打开一个名为"data.txt"的文件进行入操作,然后重新打开同一文件进行取操作,并将取到的数据输出到控制台。在实际使用时,可以根据具体需求进行文件路径设置、数据内容的修改等操作。 注意,在使用文件操作时,要确保文件的权限正确,并且要注意文件是否成功打开和关闭,以免出现错误。 ### 回答3: C语言中,要进行文件操作,首先需要包含头文件"stdio.h"。 (一)文件操作: 要从文件取数据,首先需要打开文件,然后使用fopen函数来打开指定的文件,语法如下: FILE *fopen(const char *filename, const char *mode); 其中,filename是要打开的文件名,mode是文件的打开模式,常用的模式有:r(只)、w(只)、a(追加)等。 例如,要以只方式打开名为"example.txt"的文件,可以使用以下代码: ```c FILE *file = fopen("example.txt", "r"); ``` 文件打开成功后,可以利用fscanf、fgets等函数从文件取数据。 例如,使用fscanf函数文件中的一个整数,并打印出来: ```c int num; fscanf(file, "%d", &num); printf("%d", num); ``` 取完文件中的数据后,需要使用fclose函数关闭文件,防止资源泄漏,语法如下: int fclose(FILE *stream); 例如: ```c fclose(file); ``` (二)文件操作: 要向文件入数据,同样需要打开文件。使用fopen函数来打开文件,并指定打开模式为"w"或"a"。 接着,使用fprintf、fputc等函数将数据文件中。 例如,向名为"example.txt"的文件入一个字符串: ```c FILE *file = fopen("example.txt", "w"); fprintf(file, "Hello, World!"); fclose(file); ``` 上述代码会打开文件并将字符串"Hello, World!"文件中,然后关闭文件总结C语言中的文件操作需要先打开文件,然后数据,最后关闭文件。 通过使用fopen、fclose等函数,可以完成文件的打开和关闭。 而使用fscanf、fgets等函数文件数据,使用fprintf、fputc等函数文件数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值