C++编程,用标准库和输入输出流
现有文本文件,text.txt(请考生自己创建),其内容如下:11000101001010000101101011111101请编写程序,读取文件内容,将二进制转化为十六...
现有文本文件, text.txt ( 请考生自己 创建),其内容如下:
11000101
00101000
01011010
11111101
请编写程序,读取文件内容,将二进制转化为十六进制表示形式后,写入新文件 new.txt ,同时将 new.txt 内容在屏幕上输出。 new.txt 的内容及屏幕输出结果如下:
C5
28
5A
FD
提示:每 4 位二进制数转换为 1 位十六进制数。 展开
11000101
00101000
01011010
11111101
请编写程序,读取文件内容,将二进制转化为十六进制表示形式后,写入新文件 new.txt ,同时将 new.txt 内容在屏幕上输出。 new.txt 的内容及屏幕输出结果如下:
C5
28
5A
FD
提示:每 4 位二进制数转换为 1 位十六进制数。 展开
1个回答
2011-12-12
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
void main()
{
int i,len,sum;
char str[50];
FILE *fp1,*fp2;
if((fp1=fopen("text.txt","rt"))==NULL)
{
printf("不能打开 text.txt 文件\n");
return;
}
if((fp2=fopen("new.txt","wt"))==NULL)
{
printf("不能打开new.txt文件\n");
return;
}
while(!feof(fp1))
{
fscanf(fp1,"%s",str);
len=strlen(str);
sum=0;
for(i=0; i<len; i++)
sum+= (str[i]-'0') * pow(2, len - i-1);
itoa(sum,str,16);
fprintf(fp2,"%s\n",str);
printf("%s\n",str);
}
fclose(fp1);
fclose(fp2);
}
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
void main()
{
int i,len,sum;
char str[50];
FILE *fp1,*fp2;
if((fp1=fopen("text.txt","rt"))==NULL)
{
printf("不能打开 text.txt 文件\n");
return;
}
if((fp2=fopen("new.txt","wt"))==NULL)
{
printf("不能打开new.txt文件\n");
return;
}
while(!feof(fp1))
{
fscanf(fp1,"%s",str);
len=strlen(str);
sum=0;
for(i=0; i<len; i++)
sum+= (str[i]-'0') * pow(2, len - i-1);
itoa(sum,str,16);
fprintf(fp2,"%s\n",str);
printf("%s\n",str);
}
fclose(fp1);
fclose(fp2);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询