C语言输出二进制文件的问题

作者&投稿:终柱 (若有异议请与网页底部的电邮联系)
C语言fwrite二进制输出文件问题~

用记事本打开看的话,显示的是ascii码形式,想看那种的话就是用16位编辑器可以看

1、二进制文本使用fopen函数的二进制模式“rb”就可以打开。对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。 C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。2、fopen的函数原型:FILE * fopen(const char * path,const char * mode); fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:  r 以只读方式打开文件,该文件必须存在。  r+ 以可读写方式打开文件,该文件必须存在。  rb+ 读写打开一个二进制文件,允许读数据。  rw+ 读写打开一个文本文件,允许读和写。  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)  wb 只写打开或新建一个二进制文件;只允许写数据。  wb+ 读写打开或建立一个二进制文件,允许读和写。  wt+ 读写打开或着建立一个文本文件;允许读写。  at+ 读写打开一个文本文件,允许读或在文本末追加数据。  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。3、例程: #include
#include int main () { FILE * fpPhoto, * fpText, * fpTarget ; int iRead ; char szBuf[100] ; printf ("请输入第一个文件名(jpg):
") ; gets (szBuf) ; fpPhoto = fopen (szBuf, "rb") ; printf ("请输入第二个文件名(txt):
") ; gets (szBuf) ; fpText = fopen (szBuf, "rb") ; printf ("请输入目的文件名(jpg):
") ; gets (szBuf) ; fpTarget = fopen (szBuf, "wb") ; if (!fpPhoto || !fpText || !fpTarget) { printf ("打开文件失败!
") ; system("pause") ; return -1 ; } while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpPhoto)) > 0) fwrite (szBuf, 1, iRead, fpTarget) ; while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpText)) > 0) fwrite (szBuf, 1, iRead, fpTarget) ; fclose (fpPhoto) ; fclose (fpText) ; fclose (fpTarget) ; return 0 ; }

  1、打开编译器,Ctrl+N新建一个文件;

  2、输入如下程序

  #include <stdio.h>

  #include <stdlib.h>

  int main()

  {

  int a;

  char b[100];

  scanf("%d",&a);

  itoa(a,b,2);

  printf("%s",b);

  }

  3、按F9编译

  4、按F5运行程序输入想要转化的数字即可,完成。



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
FILE* fp=fopen("a.txt","w+");
if(fp==NULL){
printf("open file error!");
return 0;
}
char buf[1024];
while(true){
printf("input the words,'exit' for exit:\n");
gets(buf);
if(strcmp(buf,"exit")==0)break;
else{
for(int i=0;i<strlen(buf);i++){
printf("%c\t:\t%d\n",buf[i],buf[i]);
fprintf(fp,"%c:%d\r\n",buf[i],buf[i]);
}
}
}
fclose(fp);
printf("thks for use.");
system("a.txt");
system("pause");
return 0;
}

只要用%x 和fprintf就行了啊

常去CSDN上看看 搜索一下 对以后有用 很多的


c语言的二进制数值如何直接输出?
没有二进制直接输出,可以自己编写程序:void f(int n){ if(n)f(n\/2);else return;printf("%d",n%2);} 上面是一个递归调用函数,它可以输出n的二进制格式

在C语言里怎么才能输出 二进制的结果
来两个常用的方法:一:运用除2取余法(我就不复制粘贴了,自己百度即可),结果存储在数组中,然后输出数组。二:如:对于int,一般是32位,可以用for循环实现,如下:int a; \/\/要输出的数bool op = false;for(int i=31; i>=0; i--){ if( a & (1<<i) ) op = true; if(...

C语言采用文本方式和二进制方式打开文件的区别分析
FILE *fp;fp=fopen(文件名,使用文件方式);使用文件方式见下表:使用文件方式 含义 "r"(只读)为输入打开一个文本文件 "w"(只写)为输出打开一个文本文件 "a"(追加)为追加打开一个文本文件 "rb"(只读)为输入打开一个二进制文件 "wb"(只写)为输出打开一个二进制文件 "ab"(追加)为...

4、C语言编程:输入一个十进制数,输出对应的二进制数.
include<stdio.h> void dec2bin(int x){if(x>1)dec2bin(x\/2);printf("%d",x%2);} int main(){int x;scanf("%d",&x);dec2bin(x);return 0;}

输入一个十进制整数,输出其对应的二进制数,用C语言的函数知识。_百度知 ...
#include<stdio.h> int main(){ int i,j,n,m=-1,a[16];printf("请输入十进制数");scanf("%d",&n);while(n!=0){ i=n%2;a[++m]=i;n=n/2;} for(j=m;j>=0;j--)printf("%d",a[j]);return0;} ...

c语言以二进制输出
include<stdlib.h> #include<stdio.h>void main(){int number=43;char string[100];itoa(number,string,2); printf("原数=%d 二进制数=%s\\n",number,string); }这个可以满足你吗?让程序输出反码补码好像要求有点高。你根据我写的程序自己算一下反码补码并不是一件很难的事。

如何将二进制.bin文件用C语言程序读出并用二进制打印才出来
fopen 打开文件,按整型读,然后转化为二进制输出就行了

用C语言怎么提取出任意程序或文件的二进制码并输出?
include <stdio.h> include <sys\/types.h> include <sys\/stat.h> include <fcntl.h> int main(int argc, char* argv[]){ if(argc<2){ printf("用法: %s file.\\n",argv[0]);return -1;} char* filename = argv[1];int fd = open(filename,O_RDONLY);if(fd==-1){ puts("...

输入一个字符,输出该字符对应的二进制 用C语言怎么编?
是对应的ASC码的二进制吧?char a;int b;int c[20];int i=0;scanf("%c",&a);b=a;while(b){ c[i++]=b%2;b\/=2;} i-=1;for(;i>=0;i--){ printf("%d",c[i]);}

c语言编程:输入一个整数,输出它的二进制序列
\/\/do...while()这个功能就是把这个数的二进制的位存入这个数组中 for(k=0;k<n\/2;k++){ t=a[k];a[k]=a[n-k-1];\/\/实现数组中2个数交换 a[n-k-1]=t;\/\/for循环是为了交换顺序,比如x=11是的二进制码是1011这4个码一次存在a[3] a[2] a[1] a[0]中,而输出的时候...

碑林区19424255508: c语言二进制输出问题 -
典畅盐酸: 这个函数是把整型以二进制形式输出.原理是从高到低,按位获取这一位的值,以字符的形式输出.void printb(int x,int n){ //x是要输出的整型数,n是当前x的比特位数 if(n>0){ putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); //这句话的意思是取当...

碑林区19424255508: C语言中怎么输出数据的二进制 -
典畅盐酸: 没有专门的输出二进制语句 需要自己写函数. 比如 void print_bin(int n) {int i;for(i=sizeof(n)*4-1; i>=0; i --){if(n&(1<<i))printf("1");else printf("0");} }这个是通过位操作 来打印一个int型的所有二进制值的函数.

碑林区19424255508: c语言的二进制数值如何直接输出? -
典畅盐酸: 1、首先打开vc6.0, 新建一个项目. 2、添加头文件. 3、添加main主函数. 4、定义一个两个数相加的函数binSubtracton. 5、在main函数定义int了性number1,number2, binSub. 6、使用scanf给变量赋值. 7、调用binAddition、binSubtracton. 8、使用printf打印结果.

碑林区19424255508: C语言能输出二进制数吗? -
典畅盐酸: 当然可以输出了的啊,但是在输出的时候需要进行转换的,现在提供一个十进制到任意进制的转换程序,你可以在编写程序的时候参考一下. 源程序如下: #include<stdio.h> #include<math.h> void main() {int i=0,n,j,a[20],b[20],k,c=0;double m,x...

碑林区19424255508: c语言怎样标准输出二进制? -
典畅盐酸: C标准没有输出二进制的,不过用itoa()可以实现到二进的转换 exampleint a = 10; char binbuf[32]; //存储二进制字串的空间 printf("%s\n", itoa(a, binbuf, 2)); //最后一个参数2表示2进制

碑林区19424255508: c 整数 二进制 输出 -
典畅盐酸: C语言中没有直接输出二进制的格式,需要进行转换,程序如下:#include char zero(int z); int main() { int number; int i; int temp; printf("Please Input your number\n"); scanf("%d",&number); for(i=1;i<=32;i++) { temp=(number&0x...

碑林区19424255508: C语言怎么输出二进制数? -
典畅盐酸: 有八进制,十进制和十六进制,不过没二进制,如果要,只能自己写转化#include<stdio.h> void main() { int n = 11; printf("%o\n", n); printf("%d\n", n); printf("%x\n", n); }

碑林区19424255508: c语言以二进制输出 -
典畅盐酸: #include#include void main(){ int number=43;char string[100]; itoa(number,string,2); printf("原数=%d 二进制数=%s\n",number,string); }这个可以满足你吗?让程序输出反码补码好像要求有点高.你根据我写的程序自己算一下反码补码并不是一件很难的事.

碑林区19424255508: c里面,怎么把十进制形式的数以二进制的形式输出
典畅盐酸: 你好,很高兴为你答疑. 实际上C语言的确没有二进制的表示,那你可以借用itoa函数将整形以字符串的形式输出 char *itoa(int value, char *string, int radix); 例如:itoa(100,s,2).即将100转化为了字符串表示的二进制,s为字符串首地址. 若问题解决还望采纳支持,有疑问欢迎讨论.

碑林区19424255508: c语言1、输出对一个十进制n的二进制,注意:输出的二进制去掉任何一个多余的0. 示例:输入: 9 -
典畅盐酸: #include int main(void) { int i=0,n,a[32]; scanf("%d",&n);// 输入 while (n>0) { a[i]=n%2; i=i+1; n=n/2; } // 输出 for(i--;i>=0;i--) printf("%d",a[i]); printf("\n"); return 0; }这样应该没有问题.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网