二进制数转换
#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;}
[解决办法]
楼上动作好快