读书人

二进制数转换,该如何处理

发布时间: 2012-03-17 19:06:27 作者: rapoo

二进制数转换
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;



int main()
{
string s="9";
vector<int> bb;
int sb[64];
ifstream in("binary.txt");
while(s!="-1")
{
getline(in,s);
for(int i=0;i<s.size();i++)
sb[i]=sb[i]-48;
int sum=0;
for(int j=0;j<i;j++)
{
int algo=1;
if(sb[j]!=0)
{
if(j==0)
algo=1;
else
for(int k=0;k<j;k++)
algo*=2;
}
sum+=algo;
}
bb.push_back(sum);


}
for(int t=0;t<bb.size();t++)
cout<<bb[t];
}


从一个文件中读取出二进制数,但编译总通不过,帮忙看下是哪出了问题?

[解决办法]

C/C++ code
#include <iostream>#include <string>     //包含string头文件#include <fstream> #include <vector> using namespace std; int main() {     string s;     vector <int> bb;     int sb[64];     ifstream in("binary.txt");     while(!in.eof())         //s="-1",你是以-1作为结束判断符?    {         getline(in,s);         for(int i=0;i<s.size();i++)         {            sb[i]=s[i] - '0'; //要减去'0',而不是48        }        int sum=0;         for(int j=0;j<i;j++)         {             int algo=1;              if(sb[j]==0)             {                 continue;      //0直接跳过            }            else            {                for(int k=0;k<(i-j-1);k++) //k<(i-j-1)                    algo*=2;                  }            sum+=algo;        }         bb.push_back(sum);             }     for(int t=0;t<bb.size();t++)         cout<<bb[t]<<endl;     return 0;}
[解决办法]
楼上动作好快

读书人网 >C++

热点推荐