int到字符串转换

时间:2010-06-21 08:17:13

标签: c++ filenames

我想在循环中保存具有不同名称的文件。我使用一个需要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

的字符

3 个答案:

答案 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));
}}