fstream没有创建文本文件

Kil*_*ing -4 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();
Run Code Online (Sandbox Code Playgroud)

Rap*_*ptz 6

您可能会附加控制字符,而不是"常规"字符.当然,这是假设类型num_attempts_x_millionint(或任何整数类型).

std::string::operator+=没有超载int.相反,它有一个,char所以它将它转换为char第一个,然后附加它.对于低的整数值,这结束了与喜欢的东西0x0,0x1,0x2,等,这被称为在ASCII控制字符.

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