我目前正在开发一个程序,我可以用文本文件(称为plaintext.txt)替换字母表和密钥文件,并在运行命令将它们混合在一起时创建密文。工作代码如下所示:
echo strwidth(getline('.'))
以上代码的输出将在
之下echo strwidth(getline(3)) "Length of line 3
echo strwidth(getline('$')) "Length of the last line
但是,我想将我的“text”和“cipherAlphabet”转换为一个字符串,我通过不同的文本文件获取它们。
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;
但是,如果我这样做,我没有输出,没有错误?那里有人可以帮我这个吗?谢谢!!
答案 0 :(得分:1)
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
当您使用上面的代码行来提取text
时,您在文件中也会获得任何空格字符 - 很可能是换行符。将该代码块简化为:
std::ifstream u("plaintext.txt");
u >> text;
需要进行相同的更改才能阅读密码。
如果您需要包含空格但排除换行符,请使用std::getline
。
std::ifstream u("plaintext.txt");
std::getline(u, text);
如果您需要处理多行文字,则需要稍微更改一下程序。