用C ++命名文件

时间:2015-08-20 13:11:39

标签: c++ file output

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

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

如果条件适合我,我不能写。 请帮助,或者更好,如果可能的话,提供一个伪代码,以便i文件名的1的循环计数器值(例如1.txt}为1.dati=22.dat文件名为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; } ,依此类推。

我添加了一个关于我想要的示例代码。

{{1}}

在这段代码中,我得到的是一个名为str.dat的文件。我希望它是1.dat,2.dat,3.dat等,通过将t的值传递给string str,然后让文件运行t次。

我希望这有助于理解这个问题。

3 个答案:

答案 0 :(得分:1)

这很简单:

for( int i = 0; i < someValue; ++i ) {
    std::string filename = std::to_string( i ) + ".txt";
    ...
}

答案 1 :(得分:0)

我相信你正在寻找这个:

#include <sstream>

// ...

std::ostringstream filename;
filename << "File-" << i << ".dat";
std::ofstream file(filename.str().c_str());

这使用字符串流(输出到字符串)来构造固定文本的文件名和i的值。然后,使用其成员函数.str()从字符串流中提取构造的字符串,并将其作为参数传递给文件输出流的构造函数。这意味着它将打开相应的文件。

答案 2 :(得分:0)

感谢所有帮助.....终于得到了它(有了一些帮助).....我在这里粘贴它以防将来需要它.......

int main()
{
    int a[10];
    for(int i=0;i<10;i++)
    {
        a[i]=i;
    }

    for(int t=1;t<15;t++)
    {
          string name="";
          name+=to_string(t);
          ofstream data(name.c_str());
          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;
}