使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int x),该函数功能是将x的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile()将结果输出到modi2.txt文件中。 例如:x=13,13的二进制数字为1

admin2016-10-28  22

问题 使用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!=0;i++)
out1.put(str);
out1.close();
}
void fun(int x)
{

}
void ClearFile()
{
ofstream out1;
out1.open("modi2.txt");
out1.close();
}
int main()
{
ClearFile();
fun(13);
return0;
}

选项

答案char str[32]; int i; for(i=30;i>=0;i--)//计算二进制 { if(x%2)str[i]=’1’;//4余,如果余不为零字符串str第i位为1 else str[i]=’0’;//否则为0 x>>=1; if(!x)break; } str[31]-’\0’;//串加尾符 cout<<&str[i]<<endl; WriteFile(&str[i]);

解析 (1)定义存放二进制的字符串str。
(2)然后利用for循环对十进制数字X进行取余运算,直到余数为0结束。
(3)如果取余结果为0,则二进制字符串这个字符位的。值为0,否则为1。
(4)最后调用WriteFile将运算结果存入文件。
转载请注明原文地址:https://kaotiyun.com/show/LKNp777K
0

最新回复(0)