ofstream中的文件名可以用变量吗?

时间:2021-12-25 20:41:31
想按次序打开一批文件,用ofstream(filename),
filename能不能使用变量,如ofstream(S);?
编译提示filename必须是const char *,
有什么别的函数吗?
请赐教!谢谢

9 个解决方案

#1


定义一个const字符串数组不就行了么?

#2


也可以使用string
比如说
string s;
ofstream file(s.c_str());

#3


强转

#4


这个问题有点怪,ofstream()的参数本来就是用char *的,怎么不可以用呢?

#5


刚才试过了
字符指针变量
或字符数组
都可以

#6


我的目的是输出一系列类似1.txt,2.txt,3.txt,.....(十以内)
则文件名部分我写的代码为:
int n=1;
char a[6]="12345";
a[0]=char('0'+n);
a[1]='.';a[2]='t';a[3]='x';a[4]='t';
const char *u=a;
ofstream  fin(u);
感觉转换比较多,先int到char,再放入char数组中,最后转成const char *,
有更方便的代码吗?

#7


int n=1;
char a[6]="12345";
sprintf(a,"%d.txt",n);

#8


放到数组中,

#9


std::string 
CString
都可以啊

std::string::c_str();
(LPCTSTR)CString;

#1


定义一个const字符串数组不就行了么?

#2


也可以使用string
比如说
string s;
ofstream file(s.c_str());

#3


强转

#4


这个问题有点怪,ofstream()的参数本来就是用char *的,怎么不可以用呢?

#5


刚才试过了
字符指针变量
或字符数组
都可以

#6


我的目的是输出一系列类似1.txt,2.txt,3.txt,.....(十以内)
则文件名部分我写的代码为:
int n=1;
char a[6]="12345";
a[0]=char('0'+n);
a[1]='.';a[2]='t';a[3]='x';a[4]='t';
const char *u=a;
ofstream  fin(u);
感觉转换比较多,先int到char,再放入char数组中,最后转成const char *,
有更方便的代码吗?

#7


int n=1;
char a[6]="12345";
sprintf(a,"%d.txt",n);

#8


放到数组中,

#9


std::string 
CString
都可以啊

std::string::c_str();
(LPCTSTR)CString;