2
我有一個包含由空格分隔的十六進制值的文件。我想查找每個十六進制值的頻率並將其寫入文本文件。例如,考慮字符串"1b 17 3c 45 3f 52 7a 5a 3b 45 31 52 2e 17 3e 58 3f 44 "
。我要統計每個十六進制值出現的頻率:計算.txt文件中的十六進制字符的頻率
1b - 1 times
17 - 2 times
.... so on.
我當前已寫了一個C++程序,但它算作一個十六進制字符的十六進制字符之間的空間,以及和沒有按預期發揮作用。
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
int x = 0;
int total[128] = {0};
int index;
ifstream infile;
ofstream outfile;
infile.open("hex.txt");
outfile.open("results2.txt");
if(!infile)
{
cout << "Error opening input file" << endl;
return 0;
}
char c;
while(infile.get(c))
{
index = c;
total[index]++;
}
for (int i=0; i<128; i++) // Print the results
{
outfile << " " << hex << i << " occurs "
<< setw(5) << dec << total[i] << " times"
<< " " << endl;
}
return 0;
}
注:
"hex.txt" is the input file
"results2.txt" is the output file
閱讀[問],然後按照建議。並且不要垃圾郵件標籤。 C和C++是** Disctinct **語言! – Olaf
你的問題是什麼?你自己有多遠? – Aeonos
使用[map](http://en.cppreference.com/w/cpp/container/map)。 – BLUEPIXY