C语言问题!就两个

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:33:52
我想用fopen()函数以"a"的形式打开二进制文件,可是总是出错。各位高手就做一做这道题吧,我作作参考:以fopen(*p,"a");的形式打开一个二进制文件,逐个地读取字符,把读取的字符的ASCII码向右移4位后,以字符形式输出到二进制文件*q中。

还有,怎样在程序中得到系统的位数啊(是16位还是32位还是64位)?

高手救命啊!!万分感谢!!!
不是fopen(*p,"a");
是fopen(*p,"rb");和fopen(*p,"wb");
刚才弄错了。
我知道用sizeof(int);,但是再乘以几才是系统的位数啊?

#include <stdio.h>
main(){
FILE *in,*out;
in=fopen("a.txt","rb");
out=fopen("a.txt","wb");
while(!feof)
fputc(out,fgetc(in)>>4);
fclose(in);
fclose(out);
}
够简单了

你的位数:sizeof(int)*8;

如果指定路径下存在这个文件,应该检查是文件属性是否可写;
一般机器位数就是sizeof(int)的值啦。

fopen(p,"a");
打开文件最好有后缀名
fopen(p,"a.txt")

#include <limits.h>

sizeof(int) * CHAR_BIT