我想從二進制文件中計數零和一個數字。問題是,我得到了正確的答覆。的零,但一些出來等於沒有。的零。 我正在做的是通過char讀取char文件。由於可以有最多256個字符,我將結果存儲在零和一個臨時數組中,並且如果再次出現字符,則從那裏檢索結果。從二進制文件讀取
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
void func(int* a1 ,int* a2)
{
for(int i=0;i<256;i++)
for(int j=0;j<8;j++)
{
if((i & 1) ==1)
{
a1[i]+=1;
}
else if((i & 1) ==0)
{
a2[i]+=1;
}
i>>1;
}
}
int main()
{
int zero[256];
int one[256];
int tzero[256];
int tone[256];
for(int i=0;i<256;i++)
{
zero[i]=0;
one[i]=0;
tzero[i]=0;
tone[i]=0;
}
func(tone,tzero);
FILE* input;
FILE* output;
output=fopen("ascii.txt","w");
input=fopen("one.bin","r");
int c;
while((c=fgetc(input))!=EOF)
{
fprintf(output,"%d\n",c);
zero[c]+=tzero[c];
one[c]+=tone[c];
}
int zeroes=0;
int ones=0;
for(int i=0;i<=255;i++)
{
zeroes+=zero[i];
ones+=one[i];
}
cout<<"zeroes:"<<zeroes<<endl;
cout<<"ones:"<<ones<<endl;
fclose(input);
fclose(output);
}
你的問題的第二句話表明你根本沒有任何問題。 –
你期望'c'能拿出什麼樣的價值? – Beta
*「沒有人出來等於沒有人」*你在說什麼? – abelenky