C语言输出二进制文件的问题
用记事本打开看的话,显示的是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]中,而输出的时候...
典畅盐酸: 这个函数是把整型以二进制形式输出.原理是从高到低,按位获取这一位的值,以字符的形式输出.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; }这样应该没有问题.