问答题 使用VC6打开 下的源程序文件modi2.cpp。请完成函数fun(int x),该函数功能是将x的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile()将结果输出到modi2.txt文件中。
例如:x=13,13的二进制数字为1101,则输出到屏幕的为1101。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
void WriteFile(char* str)
{
ofstream out1;
out1.open("modi2.txt",ios_
base::binary|ios_base::app);
for(int i=0; str[i] != 0; i++)
out1.put( str[i]);
out1.close();
}
void fun(int x)
{
}
void ClearFile()
{
ofstream out1;
out1.open("modi2.txt");
out1.close();
}
int main()
{
ClearFile();
fun(13);
return 0;
}
【正确答案】
【答案解析】char str[32];
int i;
for(i=30; i>=0; i--)//计算二进制
{
if(x%2)str[i]="1"; //求余,
如果余不为零字符串str第i位为1
else str[i]="0";//否则为0
x =1;
if(!x)break;
}
str[31]="/0"; //串加尾符
cout &str[i]