作爲C++的新手,我查看了C++ concatenate string and int,但我的要求並不完全相同。在cpp中連接字符串和int作爲文件名
我有一個樣本代碼,如下:
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int main()
{
std::string name = "John"; int age = 21;
std::string result;
std::ofstream myfile;
char numstr[21];
sprintf(numstr, "%d", age);
result = name + numstr;
myfile.open(result);
myfile << "HELLO THERE";
myfile.close();
return 0;
}
字符串和INT級聯一般的作品,但不是我希望它是一個文件名。
所以基本上,我想要的文件名是字符串和整數的組合。這不是爲我工作,我得到的錯誤
的參數1沒有已知的轉換,從 '的std :: string {又名 的std :: basic_string的}' 到 '爲const char *'
我想在用於循環這樣的邏輯在那裏
for(i=0;i<100;i++) {
if(i%20==0) {
result = name + i;
myfile.open(result);
myfile << "The value is:" << i;
myfile.close(); }
}
所以,基本上,每20次迭代,我需要這個「值」要在其中將有名字John20一個新的文件打印, John40等等。所以,對於100次迭代,我應該有5個f爾斯。
也許試試更多類似C++的方式將int轉換爲字符串(std :: to_string) – Creris
做一個_minimal_測試用例。如果你有困擾,你會知道這與連接沒有任何關係。你只是沒有將正確的參數傳遞給流構造函數。 –