我已经用c ++编写了一个运行循环的程序。每当循环结束时,矩阵的值(例如A[i][j])都会使用数值方法进行更改。

我通常要做的是使用A-ifelse语句在特定的循环计数器处输出switch的最新值,该语句在if-else语句中提到的特定文件中输出该值。但是,如果我想在每个循环计数器处获取矩阵值,该怎么办?

我不能写所有条件。
请提供帮助,或者最好提供一个伪代码,以便对于i文件名的循环计数器值(假设为1)为1.txt1.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/

10-11 22:44
查看更多