我目前正在一個程序,我可以在一個文本文件(稱爲plaintext.txt),以及一個密鑰文件中替換字母,並創建一個密文當我運行一個命令將它們混合在一起。工作代碼如下所示:std :: stringstream輸出不工作相同std ::字符串
string text;
string cipherAlphabet;
string text = "hello";
string cipherAlphabet = "yhkqgvxfoluapwmtzecjdbsnri";
string cipherText;
string plainText;
bool encipherResult = Encipher(text, cipherAlphabet, cipherText);
bool decipherResult = Decipher(cipherText, cipherAlphabet, plainText);
cout << cipherText;
cout << plainText;
輸出上面的代碼將低於
fgaam
hello
不過,我想我的「文本」和「cipherAlphabet」轉換成在那裏我得到的字符串他們兩人通過不同的文本文件。
string text;
string cipherAlphabet;
std::ifstream u("plaintext.txt"); //getting content from plainfile.txt, string is text
std::stringstream plaintext;
plaintext << u.rdbuf();
text = plaintext.str(); //to get text
std::ifstream t("keyfile.txt"); //getting content from keyfile.txt, string is cipherAlphabet
std::stringstream buffer;
buffer << t.rdbuf();
cipherAlphabet = buffer.str(); //get cipherAlphabet;*/
string cipherText;
string plainText;
bool encipherResult = Encipher(text, cipherAlphabet, cipherText);
bool decipherResult = Decipher(cipherText, cipherAlphabet, plainText);
cout << cipherText;
cout << plainText;
但是,如果我這樣做,我得到沒有輸出,沒有錯誤?有沒有人可以幫我解決這個問題?謝謝!!
在從中讀取數據以查看狀態是否仍然良好之前,請務必檢查「if(t)」。 –
您沒有閱讀文件。只需將文件讀入std :: string並完成它即可。你可以谷歌如何。 –
@AnonMail OP實際上是使用'rdbuf()'讀取文件。 –