我已经用c ++编写了一个运行循环的程序。每当循环结束时,矩阵的值(例如A[i][j]
)都会使用数值方法进行更改。
我通常要做的是使用A
-if
或else
语句在特定的循环计数器处输出switch
的最新值,该语句在if
-else
语句中提到的特定文件中输出该值。但是,如果我想在每个循环计数器处获取矩阵值,该怎么办?
我不能写所有条件。
请提供帮助,或者最好提供一个伪代码,以便对于i
文件名的循环计数器值(假设为1
)为1.txt
(1.dat
),对于i=2
文件名为等等。
我已经添加了关于我想要的示例代码。
int main()
{
string str="";
int a[10];
for(int i=0;i<10;i++)
{
a[i]=i;
}
for(int t=1;t<16;t++)
{
str=t;
ofstream data("str.dat");
if(data.is_open())
{
cout << "File Opened successfully!!!. Writing data from array to file" << endl;
for(int i=0;i<10;i++)
{
data<<a[i]<<endl;
}
}
else //file didn't open
{
cout << "File could not be opened." << endl;
}
for(int m=0;m<10;m++)
{
a[m]=2*a[m];
}
}
return 0;
}
在这段代码中,我得到的只是一个名为str.dat的文件。我希望它是1.dat,2.dat,3.dat,因此可以将t的值传递给字符串str,然后让文件运行t的次数。
我希望这将有助于理解问题。
最佳答案
我相信您正在寻找这个:
#include <sstream>
// ...
std::ostringstream filename;
filename << "File-" << i << ".dat";
std::ofstream file(filename.str().c_str());
这使用字符串流(输出为字符串)从固定文本和
i
值构造文件名。然后,使用其成员函数.str()
从字符串流中提取构造的字符串,并将其作为参数传递给文件输出流的构造函数。这意味着它将打开相应的文件。关于c++ - C++中的文件命名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32119203/