c++ - 通过迭代打开文件

标签 c++ c text-files

大约有 50 个文件需要在我的程序中打开以供阅读,我将所有文件从 1.txt 重命名为 50.txt 希望我可以通过递增文件编号的循环传递文件名,但我没有不知道如何/不认为可以将整数传递给 char,或者是否有更好的方法来解决我的情况。

char* filename = "";

for(int i =0; i < 50; i++)
{
if(i == 0){filename = "0.txt";}
if(i == 1){filename = "1.txt";} // ..
int num = 0, theinteger = 0;
ifstream in(filename, ios::binary);
unsigned char c;
while( in.read((char *)&c, 1) )
{       
        in >> theinteger;
        sca.chac[num]=theinteger; 
        num++;
}
}

return 0;

最佳答案

有一种相对简单的方法 - 在 C 中,使用 sprintf函数,像这样:

char filename[100];
sprintf(filename, "%d.txt", i);

在 C++ 中,使用 ostringstream :

ostringstream oss;
oss << i << ".txt";

关于c++ - 通过迭代打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342336/

相关文章:

c++ - 在堆上分配时对齐内存

c++ - 将 std::type_index 作为模板参数传递给函数模板

c - 无法找出二叉树的高度

c - 如何只读取最后 3 位数字?

java - 从文件读取直到 Java 中的特定字符

c++ - 使用 auto 作为参数是否有负面影响?

c++ - 如何理解 makefile 脚本中的 'test'?

matlab - Matlab readtable 可以处理以可变数量的空格分隔的文本文件吗?

c - 下面的宏是什么意思?

batch-file - 批量/查找并编辑 TXT 文件中的行