如何打开用户输入的文件名?

时间:2014-03-08 12:48:03

标签: c++ string coding-style iostream

    required.close();
    destined.close();
}

该程序应该要求用户输入文件名和输出文件名。输入文件名应该有一条加密或解密的消息,具体取决于用户的选择。该程序应该有3个函数,一个用于检查文件的存在,一个用于加密/解密每个字符,另一个用于加密/解密整个文件。

1 个答案:

答案 0 :(得分:1)

有一些错误和一些改变的事情:

    encChar函数中
  • 这是错误的:if (flag = true)。您应该使用比较运算符(==):

    `if (flag == true)`
    

    有人更喜欢这种形式(交换比较术语):

    `if (true == flag)`
    

    因为检测到错误的作业。

  • 它应该是encFile函数中的
  • ofstream destined(outFile.c_str());
    

    启用警告是个好主意(例如,使用GCC / CLANG使用-Wansi -Wall -Wextra),以便检测未使用的变量/参数(在您的情况下为string outFile输入参数)。

    < / LI>

注意Simple的建议(尝试使用绝对路径。它可能与您的程序有不同的工作目录与您期望的相关)并且您的程序应该有效。

您可以通过其他一些更改来改进代码:

  • 将变量放在尽可能最窄的范围内,并在声明中初始化变量,例如

    ifstream required;
    required.open(inFile.c_str());
    

    应该是

    ifstream required(inFile.c_str());
    

    (并在使用流之前检查错误)。

  • using namespace std is considered a bad practice

  • 编码样式和格式非常随意,但如果您始终使用相同的样式,则代码更容易理解。

  • don't use global variables