C++ 从字符串、字符和双精度文件中仅读取双精度

C++ 从字符串、字符和双精度文件中仅读取双精度,c++,text-files,C++,Text Files,这是我拥有的文件示例(这是一行): 现在,我的问题是,我需要能够阅读这个文件,并将我感兴趣的数字输入到另一个文件中 所以,我试过这个: ifstream in("Data.dat") ofstream out output.open("Output.dat") double a1, ..., a12; while(1) { if(!(in >> a1 >> ... >> a12)) break;

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

现在,我的问题是,我需要能够阅读这个文件,并将我感兴趣的数字输入到另一个文件中

所以,我试过这个:

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.


}
ifstream-in(“Data.dat”)
流出
output.open(“output.dat”)
双a1,…,a12;
而(1){
如果(!(在>>a1>>…>>a12中))
打破

输出您应该使用'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;
}
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
ifstream in(“t1.txt”);
串a1、a2、a3、a4、a5、a6、a7、a8、a9;
流输出(“t2.txt”);
而(1)
{
如果((在>>a1>>a2>>a3>>a4>>a5>>a6>>a7>>a8>>a9中))
{

如果(!(在>>a1>>…>>a12中))则输出
“< /Cord>”什么都不做。你确定应该有一个<代码>,到底是什么?你可以把它们都当作字符串来读,并用……来转换/跟踪有效的。@ Axtheta我纠正了我所尝试的。我猜也是错误的。“克里斯,我看,如果这些都在同一行。如果我使用GETLIN,它会考虑所有的O。这是一个字符串。那么我如何将每个字符串作为一个字符串单独读取呢?@愚蠢,您可以在当前输出中使用一个字符串,
in>>str
,检查它是否为双精度,以及
输出
#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;
}