嗨,我试图不使用fopen(文件,"w")覆盖C中的文件;
我的问题是该文件已作为10 MB文件存在,但当我使用fopen时,文件最终变为1KB.我想写一些文件,但我希望它保持相同的大小.我怎么做到这一点?我看到了"A +"的东西附加到文件的末尾,但如果我想写一些东西到文件的开头不扩大规模呢?它只是一个空文件
或者,有没有办法在C中创建具有特定大小(例如10MB)的文件?
对的,这是可能的.通过打开它r+打开它进行"读写"(同时w打开它进行新写).
关于你的另一个问题:打开一个文件,w并向文件写入1000个1024字节块,如下所示:
FILE *fp = fopen("file", "wb");
if(fp) {
int i = 0;
char Buf[1024];
for(; i < 1000; ++i)
fwrite(Buf, 1, 1024, fp);
fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)
再一次为你的fopen标志:
r - >打开文件进行读取.(文件保持不变)
w- >打开文件进行写入.(文件被删除)
a- >打开文件以进行追加.(文件保持不变,文件指针移动到结尾)
除了这三种主要类型之外,您还可以添加一些其他选项:
b - >将文件打开为二进制文件,忽略格式化字符,例如\n
t - >将文件作为文本打开,特别是在Windows下解析\n为\ r \n.