C语言文件操作:fputc、fputs 与 fgetc、fgets 对比

本文详细比较了C语言中的fputc和fputs用于写入字符和字符串,以及fgetc和fgets用于读取单字符和一行字符串的区别,帮助理解这些基本文件操作函数的用法和异同。

在C语言中,文件操作是常见的编程任务之一。在处理文件时,程序员通常会使用一些标准库函数来实现读写操作。在本文中,我们将重点比较 fputcfputsfgetcfgets 这四个文件操作函数,了解它们之间的异同。

fputcfputs

1. fputc

fputc 函数用于将一个字符写入文件。其函数原型如下:

int fputc(int character, FILE *stream);

character 是要写入文件的字符,而 stream 是指向 FILE 结构的指针,表示要写入的文件。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w");
    
    if (file != NULL) {
        fputc('A', file);
        fclose(file);
    }

    return 0;
}

上述示例将字符 ‘A’ 写入了名为 “example.txt” 的文件中。

2. fputs

fputs 函数用于将一个字符串写入文件。其函数原型如下:

int fputs(const char *str, FILE *stream);

str 是要写入文件的字符串,而 stream 是指向 FILE 结构的指针,表示要写入的文件。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w");
    
    if (file != NULL) {
        fputs("Hello, World!", file);
        fclose(file);
    }

    return 0;
}

上述示例将字符串 “Hello, World!” 写入了名为 “example.txt” 的文件中。

fgetcfgets

1. fgetc

fgetc 函数用于从文件中读取一个字符。其函数原型如下:

int fgetc(FILE *stream);

stream 是指向 FILE 结构的指针,表示要读取的文件。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    
    if (file != NULL) {
        int character = fgetc(file);
        printf("%c\n", character);
        fclose(file);
    }

    return 0;
}

上述示例从文件 “example.txt” 中读取一个字符并打印出来。

2. fgets

fgets 函数用于从文件中读取一行字符串。其函数原型如下:

char *fgets(char *str, int num, FILE *stream);

str 是一个指向字符数组的指针,用于存储读取的字符串;num 是要读取的最大字符数;stream 是指向 FILE 结构的指针,表示要读取的文件。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    
    if (file != NULL) {
        char buffer[100];
        fgets(buffer, sizeof(buffer), file);
        printf("%s", buffer);
        fclose(file);
    }

    return 0;
}

上述示例从文件 “example.txt” 中读取一行字符串并打印出来。

总结

  • fputcfputs 用于写入,一个是写入单个字符,一个是写入字符串。
  • fgetcfgets 用于读取,一个是读取单个字符,一个是读取一行字符串。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值