fstream没有创建文本文件

时间:2014-08-07 23:56:09

标签: c++ string fstream

当我尝试运行此代码源时,而不是创建Attempt1.txt,或Attempt2.txt或Attempt3.txt,它只是创建一个名为Attempt的文件。

    string str;
    int num_attempts_x_million = 1;

    str = "Attempt";
    str += num_attempts_x_million;
    str += ".txt";
    textfile.open(str); 
    textfile << password << endl;
    textfile.close();

2 个答案:

答案 0 :(得分:6)

您可能会附加控制字符,而不是常规&#39;字符。当然,这是假设num_attempts_x_million的类型是int(或任何整数类型)。

std::string::operator+=没有int的重载。相反,它有一个用于char,因此首先将其转换为char,然后将其附加。对于低整数值,最终会出现0x00x10x2等内容,这些内容称为control characters in ASCII

为了将整数转换为字符串,您必须使用std::to_string

答案 1 :(得分:2)

str = "Attempt";
str += std::to_string(num_attempts_x_million);
str += ".txt";
textfile.open(str); 
textfile << password << endl;
textfile.close();