写入字符串到文件中 C语言两种方式

文章详细比较了C语言中使用`char*`数组和二维数组`char[4][2]`进行文件写入操作的原因,强调了`char*`作为字符串指针的重要性以及为何二维数组需要每个元素后跟`0`终止符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
int main() {
        FILE* fp = fopen("t.txt","w");
        if (fp == NULL) {
                printf("打开失败");
                return -1;
        }
        char* buf[4] = { "a","B","C","D" };//为什么必须是char *呢?不能是char buf[4]呢 
        //因为,数组定义为 char buf[4] 时,它就不再是字符串的数组,
        //而只是一个含有四个 char 类型的单一数组。
        //在这种情况下,buf[i] 将是 char 类型的值,而非字符串(指向字符的指针),这不能直接被 fputs 函数使用,
        //因为 fputs 期望其第一个参数是一个以 \0 结尾的字符串,也就是 char* 类型。
        for (int i = 0; i < 4; i++) {
                fputs(buf[i], fp);
                putc('\n', fp);
        }
        fclose(fp);

}
#include<stdio.h>

int main() {
    // 定义一个含有4个字符的二维数组, 每个字符后面都有一个空字节 '\0', 组成字符串
    char buf[4][2] = {
        {'A', '\0'},
        {'B', '\0'},
        {'C', '\0'},
        {'D', '\0'}
    };

    // 打开文件,准备写入
    FILE* fp = fopen("t.txt","w");
    if (fp == NULL) {
        printf("打开失败");
        return -1;
    }

    // 循环通过fputs将每个字符写入文件,然后写入一个换行符
    for (int i = 0; i < 4; i++) {
        fputs(buf[i], fp); // buf[i] 是指向第 i 个字符串的指针
        putc('\n', fp);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值