我想在循环中保存具有不同名称的文件。我使用一个需要char作为文件参数的库...
for(int i=0;i<nodes;i++){
for(int j=0;j<nodes;j++){
char a[20]="test";
char c[20]="xout.dat";
Lib::SaveFile(_T(a), _T(c));
}}
上面的代码可以工作,但是我想将xout.mid的名称更改为相应的整数,这样我就可以获得具有不同名称的i * j文件.i和j从0到大约30。
我想获得一个名为i_j_xout.dat
的字符答案 0 :(得分:2)
char name[30];
sprintf(name, "%d-%d-%s", i, j, c);
答案 1 :(得分:2)
不要使用char缓冲区和sprintf,而应考虑使用std :: string和std :: ostringstream:
#include <sstream>
#include <string>
[...]
std::basic_string<TCHAR> nameA = _T("test");
std::basic_ostringstream<TCHAR> nameC;
for(int i=0;i<nodes;i++){
for(int j=0;j<nodes;j++){
nameC.str(_T(""));
nameC << i << "_" << j << "_xout.dat";
Lib::SaveFile( nameA.c_str(), nameC.str().c_str() );
}
}
答案 2 :(得分:-1)
使用sprintf()函数:
for(int i=0;i<nodes;i++){
for(int j=0;j<nodes;j++){
char c[20];
char a[20]="test";
sprintf(c, "%d_%d_xout.dat", i, j );
Lib::SaveFile(_T(a), _T(c));
}}