1

这是我拥有的文件的示例(这是一行):

B12                          MN =                              1.2                         G_{I}=                          3.4                               G_{B}  =                           9.4                        J_k =                               4.4                  1.4                      0.4                   -0.1                       -0.1               3.3                 9.3                      -5.7                 2

现在,我的麻烦是我需要能够读取这个文件并将我感兴趣的数字放入另一个文件中。

所以,我尝试了这个:

ifstream in("Data.dat")
ofstream out
output.open("Output.dat")

double a1, ..., a12; 

while(1) {
           if(!(in >> a1 >> ... >> a12))
           break;

           output << a1 << a2 << a12; //say these are the three doubles I'm interested in.


}

然而,这失败了。我在输出文件中没有得到任何东西。我真的不知道如何解决这个问题。

有什么建议么?

4

1 回答 1

2

你应该使用'string'而不是'double',测试代码如下:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
    ifstream in("t1.txt");
    string a1,a2,a3,a4,a5,a6,a7,a8,a9;
    ofstream out("t2.txt");

    while(1)
    {
        if((in>>a1>>a2>>a3>>a4>>a5>>a6>>a7>>a8>>a9))
        {
            out<<a1<<a3<<a5<<endl;
        }
        else
            break;
    }

    return 0;
}
于 2012-07-22T04:03:56.567 回答