从字符串、char和doubles文件中只读取doubles

Reading only doubles from a file of strings, char, and doubles

本文关键字:doubles 文件 读取 字符串 char      更新时间:2023-10-16

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

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.

}

然而,这失败了。输出文件中没有任何内容。我真的不知道怎么解决这个问题。

有什么建议吗?

您应该使用"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;
}