如何加密写入用户输入的文件中的消息?
Posted
技术标签:
【中文标题】如何加密写入用户输入的文件中的消息?【英文标题】:How to encrypt a message written in a file entered by the user? 【发布时间】:2014-03-08 13:35:42 【问题描述】: required.get(c);
cout << "The encryption is over";
required.close();
destined.close();
此程序应加密/解密文件中的消息,用户应提及。它应该有 3 个功能,一个是检查输入文件是否存在,第二个应该是加密/解密每个字符,一个是加密/解密整个文件。问题是它一直说“文件不存在”。我不知道怎么读。第二个问题是加密功能(encFile)不起作用。
【问题讨论】:
required.open(infile.c+str())
不是有效的语法。另外,您是否检查过该文件确实确实存在于您计算机的某个位置?
这是因为您的checkExistingFile()
函数中while(required.fail())
中的条件永远不会改变。
另外,“加密功能不起作用”并没有告诉我们太多关于这个问题的信息。
“永不改变”是什么意思,请您解释一下吗?
你有两个加密功能。哪一个不行?究竟是什么不工作?
【参考方案1】:
问题是它一直说“文件不存在”。我不知道怎么读。
要解决此问题,请按如下方式更改您的 checkExistingFile()
函数:
bool checkExistingFile(string& inFile)
ifstream required;
required.open(inFile.c_str());
while(required.fail())
cout<< "The file does not exist, please enter another file " <<
"(leave empty to abort)"<< endl;
cin >> inFile;
if(infile.empty()) return false;
required.open(inFile.c_str());
return true;
也许你应该考虑给用户一个打破循环的机会(例如给出一个空文件名),然后返回false
。
正如其他人和你自己在那里提到的,你的代码还有其他问题,我在这里不回答。
【讨论】:
以上是关于如何加密写入用户输入的文件中的消息?的主要内容,如果未能解决你的问题,请参考以下文章
在用户输入值而不覆盖以前的值后,如何写入 .csv 文件的下一行?