C - fwrite() 不输出到文件

标签 c file fwrite

从未使用过 fwrite(),所以我不确定我做错了什么。我现在只是在测试它,我想做的就是尝试将单个字符写入文件,直到它到达末尾。我正在写入的文件是我从老师的网站上下载的文件。当我检查它的属性时,类型仅列为"file"。它应该只是一个 2MB 的空文件,供我们将代码写入(文件系统实验室,如果有人想知道的话)。这是我的代码:

#include <stdio.h>
#include <string.h>
int main()
{
    char c;
    FILE *fp;   
    char testing[2] = {'c'};  

    fp = fopen("Drive2MB", "rw"); 

    fseek(fp, 0, SEEK_SET);     //make sure pointers at beginning of file
    while((c=fgetc(fp))!=EOF)
    {
        fwrite(testing, 1, sizeof(testing), fp);
        fseek(fp, 1, SEEK_CUR);  //increment pointer 1 byte
    }
    fclose(fp);
} 

当我运行它时,弹出一条错误消息说“调试断言失败!...表达式:(“无效的文件打开模式”,0)并打印“程序'[3896] filesystem.exe: native '有以代码 3 (0x3) 退出。”

最佳答案

您已打开文件进行阅读(rfopen("Drive2MB", "r"); 中的含义)。您不能写入为读取而打开的文件。

关于C - fwrite() 不输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363911/

相关文章:

python - Numpy savetxt 将一维数组保存为列

c++ - 读取文件多数据类型 (c++)

C - 通过函数、指针写入动态数组

c - 可靠地计算磁盘已满时 fwrite 写入的字节数

c - 重置 TCP KeepAlive 定时器

c++ - 为什么读取不存在的文件会打印垃圾字符?

c - 无法预测以下程序的输出

c - ANSI C 我在 fwrite 和 fread 上做错了什么?

c - 键盘中断处理的 Linux 设备驱动程序错误

C 读取了错误数量的字符串