我正在做一個C++課程和通過學年的中途,我們得到一個模擬連續/練習。它沒有標記,它只是用於練習。 基本上,我們必須從文件中做到這一點簡單的解碼程序C++
(一)閱讀文本,其內容存儲在 字符A.任何陣列(b)計算的 A中的每個字母出現的次數和百分比使用兩個平行陣列(B和C):一個包含 26個字母,另一個包含它們對應的 發生的百分比。 (c)使用排序算法(例如, 氣泡排序算法)對 的上述兩個平行數組進行排序,以發生百分比的降序排列。 (d)將(b)和(c) 應用於訓練和編碼文本。將兩組並行 陣列(用於訓練和編碼文本)存儲起來以供進一步使用。 (e)使用上述兩組已排序的並行數組來查找並且 在訓練和編碼012-文本中顯示字母的一對一映射。 (f)用編碼信息中的字母代替字母 它們表示(g)交互詢問用戶一對字符, 將它們存儲在兩個字符變量(例如X和Y)中,並用 代替所有出現的字母X代表字母Y中的數字 個字符。 (h)將存儲在字符數組 中的解碼文本保存到文件中。 (i)能夠重複(f),(g)和(h)與用戶希望的次數一樣多。
我們得先做一個程序代碼,然後是面向對象的。
#include <fstream> //for file I/O
#include <iostream> //for cout, endl
#include <string> //for countletters
using namespace std;
int countletters(/*in*/ int& sum) //counting the number of letters contained in the file
{
string line;
ifstream inData ;
inData.open("encoded.txt");
while(!inData.eof())
{
getline(inData,line);
int numofChars= line.length();
for (unsigned int n = 0; n<line.length();n++)
{
if (line.at(n) == ' ')
{
numofChars--;
}
}
sum=numofChars+sum;
}
inData.close();
//sum is the number of letters inside the encoded.txt file
}
void fileintoarray(int& sum)
{
int arraysize = sum;
char myArray[arraysize];
char current_char;
int num_characters = 0;
int i = 0;
ifstream myfile ("encoded.txt");
if (myfile.is_open())
{
while (!myfile.eof())
{
myfile >> myArray[i];
i++;
num_characters ++;
}
for (int i = 0; i <= num_characters; i++)
{
cout << myArray[i];
}
system("pause");
}
}
int main()
{
int sum=0;
countletters();
fileintoarray();
return 0;
}
這是我到目前爲止寫的,第二個功能不起作用。 它無法編譯。
任何人都可以請幫我這個嗎?
沒有故事請! – P0W
_''doesn't work'_非常含糊! –
什麼不行,它不會編譯? – Raxvan