c++中如何控制打开文件的名字
一个循环,每次打开不同的名字,比如打开book1.txt,book2.txt,...book20.txt如何能够不定义二十个变量而打开这么多个文件...
一个循环,每次打开不同的名字,比如打开book1.txt,book2.txt,...book20.txt
如何能够不定义二十个变量而打开这么多个文件 展开
如何能够不定义二十个变量而打开这么多个文件 展开
展开全部
前提是你的文件名有规律:
定义几个字符串常量,比如 const char* szBook = "book";
const char* szTxt = ".txt";
最后用一个临时字符串变量放当前要打开的文件名,比如
char* szTmp = new char[32];
memset(szTmp, 0, 32);//清空
strcat(szTmp, szBook);
strcat(szTmp, "1");//后面的1就是有规律性的数字
strcat(szTmp, szTxt);
好了,这个文件名拼接好了。如果有路径的话,再拼个路径。
如果文件名没规律,那只能有多少就定义多少了。
定义几个字符串常量,比如 const char* szBook = "book";
const char* szTxt = ".txt";
最后用一个临时字符串变量放当前要打开的文件名,比如
char* szTmp = new char[32];
memset(szTmp, 0, 32);//清空
strcat(szTmp, szBook);
strcat(szTmp, "1");//后面的1就是有规律性的数字
strcat(szTmp, szTxt);
好了,这个文件名拼接好了。如果有路径的话,再拼个路径。
如果文件名没规律,那只能有多少就定义多少了。
展开全部
//大致是这样
#include <sstring>
#include <fstring>
std::string int_to_str(const int& i)
{
std::ostringstream out;
out << i;
return out.str();
}
int main()
{
for (int i = 1; i <= 20; i++) {
string this_file("book" + int_to_str(i));
std::ifstream in(this_file.c_str());
// do something on in, for example
in >> n >> str;
in.close();
}
return 0;
}
#include <sstring>
#include <fstring>
std::string int_to_str(const int& i)
{
std::ostringstream out;
out << i;
return out.str();
}
int main()
{
for (int i = 1; i <= 20; i++) {
string this_file("book" + int_to_str(i));
std::ifstream in(this_file.c_str());
// do something on in, for example
in >> n >> str;
in.close();
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
放在一个CString str[20]里吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//大致是这样
#include
<sstring>
#include
<fstring>
std::string
int_to_str(const
int&
i)
{
std::ostringstream
out;
out
<<
i;
return
out.str();
}
int
main()
{
for
(int
i
=
1;
i
<=
20;
i++)
{
string
this_file("book"
+
int_to_str(i));
std::ifstream
in(this_file.c_str());
//
do
something
on
in,
for
example
in
>>
n
>>
str;
in.close();
}
return
0;
}
#include
<sstring>
#include
<fstring>
std::string
int_to_str(const
int&
i)
{
std::ostringstream
out;
out
<<
i;
return
out.str();
}
int
main()
{
for
(int
i
=
1;
i
<=
20;
i++)
{
string
this_file("book"
+
int_to_str(i));
std::ifstream
in(this_file.c_str());
//
do
something
on
in,
for
example
in
>>
n
>>
str;
in.close();
}
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询