本程序只实现了功能,应再加一些错误检查才好,鉴于实现复杂,影响主题,就不写了
#include <stdio.h>
int write_file( char *file, int bit )
{
FILE *fp=fopen(file, "r+b" ); //以读写方式打开二进制文件
char ch=0;
if ( fp == NULL )
fp=fopen( file,"w" ); //第一次没有文件时会找不到文件
else
{
fread( &ch, 1, 1, fp ) ;
ch <<=1 ;
if ( bit )
ch |= 0x01 ;
fseek( fp, 0, SEEK_SET );
}
if ( fwrite( &ch, 1,1, fp ) != 1 ) //将ch写入文件,以二进制写方式
{
return -1;
}
fclose(fp);
return 0;
}
int main()
{
char filename[128]={"D:\\abc.txt"}; //为了方便就不输入文件名了
/* 放开这里可以输入文件名
printf( "input filename:" );
scanf("%s", filename );
*/
int bit ;
printf("input a num:");
while( scanf("%d", &bit )!=1 || (bit!=0 && bit!=1) )
{
fflush( stdin);
printf("input error,re-input\n" );
}
if ( write_file( filename, bit ) )
{
printf("write file error, clear file and re-do\n" );
return -1;
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考