① 怎么用c语言进行文件格式转换(从二进制到文本文件)
以二进制格式打开文件,把文件内容读到中间变量,一文本格式创建文件,把中间变量里的东西写进去
② 二进制原码补码转换c语言源代码
#include<stdio.h>
intmain()
{
charin[10],out[10];
scanf("%s",in);
if(strlen(in)<8||in[0]==0)printf("%s ",in);
else
{
inti;
out[0]='1';
for(i=1;i<8;i++)
{
if(in[i]=='0')
out[i]='1';
elseout[i]='0';
}
for(i=7;i>0;i--)
{
if(out[i]=='0')
{
out[i]='1';
break;
}
elseout[i]='0';
}
out[8]=0;
printf("%s ",out);
}
}
③ c语言将二进制文本改为正常的文本文件。
fprintf和fscanf是格式写入读取,最好用的了
fwrite是数据块写入
用for循环,多次用fprintf
④ 用C语言编写二进制转换的程序。
#include"stdio.h"doublepower(doublex,intn)//递归实现函数转换{doubleval=1.0;while(n--)val*=x;return(val);}voidmain(){inti,n,value=0;charch;printf("请输入您要输入的二进制位数:");scanf("%d",&n);printf("输入一个%d位二进制数:",n);for(i=n;i>=0;i--){scanf("%c",&ch);if(ch=='1')value+=int(power(2,i));}printf("十进制是:%d\n",value);}由于本人的英语水平有限,所以就用VC++软件,用C的知识写了这个程序。。如果你要在C里运行。。貌似要把中文全部翻译成英文即可。。。
⑤ 二进制转十进制c语言代码
#include<stdio.h>
intmain()
{
intn=0,c;
while((c=getchar())!=' ')
n=n<<1|c-'0';
printf("%d ",n);
return0;
}
⑥ C语言 二进制文件和文本文件
二进制和文本文件一般来说只是在编码层次上有差异,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思,这样一个过程,可以看作是自定义编码。
另外:文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件因为是值编码可看成是变长编码的。
⑦ 求二进制转十进制的代码 C语言!
#include <stdio.h>
long int btd(char *s) /*将以字符串形式存储在s地址中的二进制数字转内换为对应的十容进制数字*/
{
long int rt=0;
int i,n=0;
while (s[n]) n++;
for (--n,i=n; i>=0; i--)
rt|=(s[i]-48)<<n-i;
return rt;
}
int main(int argc, char* argv[])
{
printf("%ld",btd("11011"));/*示例,输出11011B的十进制形式*/
return 0;
}
⑧ C语言二进制文本的操作
这个是为了打印,增加的判断,为保证程序健壮性很需要如此累赘
打印\r将会影响文件倒序打印的效果,putchar打印EOF(一般是-1),我也没试过,但肯定是非正常输出。
所以增加这两个判断,是为了避免异常及保证打印效果
虽然-1把EOF除外,谁也不知道是否输入的文件就是一个正常文件
int fseek( FILE *stream, long offset, int origin );
第一个参数stream为文件指针
第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
在C语言中,用函数getc(fgetc)从文件读取字符。getc、fgetc用法相同。
getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。
⑨ c语言txt文件二进制转十进制
#include<stdio.h>
#include<stdlib.h>
int main(){FILE *fp,*tp;int a,b,k;
if ( fp=fopen("E:\1.txt","r") ) {
if ( tp=fopen("E:\2.txt","w+") ) {
while ( !feof(fp) ) {
if ( fscanf(fp,"%d",&a)==1 ) {
k=1; b=0; while ( a ) { b+=a%10*k; a/=10; k*=2; } fprintf(tp,"%d ",b);
}
}
fclose(tp);
}printf("无法建立文件2.txt。 ");
fclose(fp);
} else printf("无法打开文件1.txt读取。 ");
return 0;
}
⑩ 如何用C语言把二进制文件转换成文本文件
二进制文件转换为文本文件是没有任何实际意义的.
二进制文件和文本文件最根本的区别就是专二进制文件在属读写的时候系统不对文件进行任何处理而交由程序员处理, 而文本文件打开是先由操作系统把文件中而在的\r\n转换为\n. 因为我们在C语言中写程序换行只有\n, 但是在Windows操作系统中, 换行是\r\n, 是两字字节. 如果不作任何处理, fgetc() == '\n' 遇到这类语句将会出现一些小错误, 导致文件读写失败. 所以在读的时候, 系统自动把文件中的\r\n变成\n, 写的时候把内存中的\n全部转换成\r\n.
至于为什么C语言用\n而Windows用\r\n, 这是因为C语言是最早出现在Linux系统中的, 而Linux用的换行只有\n, 所以为了使代码可移植性较高, 在Windows中编写C程序仍然使用\n, 程序员就不需要去在意这些细节问题了.