所以我正在设计一个游戏,用文本文件存储和读取数据。但我需要能够以重复的方式执行此操作,因此文本文件的名称在程序上需要针对每个文本文件的名称不同。我认为使用变量作为名称可以解决这个问题,但我很难做到这一点并让编译器使用它。 这是我当前的代码,将'hello'写入名为'test.txt'的文本文件:
ofstream myfile;
myfile.open("test.txt");
myfile << "hello";
myfile.close();
现在,我可以使用单个char *指针或char数组缓冲区替换“test.txt”,但我需要将文件名与.txt扩展名分开。 我的想法是以某种方式将char *变量组合起来用于名称参考(例如galaxy,star,planet等),加上一个数值(必须是一个大数字,可能是double或float),加上“.txt”文字扩展名。这将是一个与myfile.open兼容的char指针或数组。有任何想法吗?只要我得到相同的最终结果,我愿意改变这个过程。
答案 0 :(得分:1)
您的文件名应考虑string
而不是char*
,因为C ++ 11允许这两种类型:
string myfilename="test";
myfile.open(myfilename+".txt");
myfile << "hello";
myfile.close();
要创建更复杂的文件名,您可以考虑使用stringstreams:您可以使用通常的输出来复制和格式化文件名,并将其转换为字符串。
stringstream nn;
int counter=0;
nn<<myfilename<<counter<<".txt";
myfile.open(nn.str());
...