C++ 如何通过C+读取特定的第一个字符并保存数据+;

C++ 如何通过C+读取特定的第一个字符并保存数据+;,c++,C++,我想写一个可以读取文件的程序,如下所示: p 6 9 n 3 b 1 6.0 b 1 4.0 b 2 2.0 在这样的文件中,我想读取第一个字符b的行 我尝试使用getline()并判断第一个字符是否为b。 然而,我面临的问题是,我可以很容易地保存第一个int,但第二个double数我不能保存它。我知道原因是我将其保存在char中,因此将dobule编号分隔为(例如6.0变为'6'。'0') 因此,是否有其他方法可以使用integer和double保存行?

我想写一个可以读取文件的程序,如下所示:

p   6   9
n   3
b   1   6.0
b   1   4.0
b   2   2.0
在这样的文件中,我想读取第一个字符
b
的行
我尝试使用
getline()
并判断第一个字符是否为b。
然而,我面临的问题是,我可以很容易地保存第一个int,但第二个double数我不能保存它。我知道原因是我将其保存在char中,因此将dobule编号分隔为
(例如6.0变为'6'。'0')

因此,是否有其他方法可以使用integer和double保存行?

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){

    char b[100];
    string word;
    int a,d;
    double c;
    ifstream infile("test.txt");
    while(infile){
        infile.getline(b,100);
        if(b[0] == 'b'){
            //where I don't know how to save the data
        }
    }
}
#包括
#包括
#包括
使用名称空间std;
int main(){
charb[100];
字符串字;
int a,d;
双c;
ifstream-infle(“test.txt”);
while(填充){
填充getline(b,100);
如果(b[0]=='b'){
//我不知道如何保存数据
}
}
}

很抱歉我的英语太生疏了,但我真的需要你的帮助。

只需将整个字符串放入a,然后使用
>
将其数据取出:

int int_value;      // second data will be saved here, e.g. 1
float float_value;  // third data will be saved here, e.g. 6.0

char char_dummy;    // dummy char to hold the first char, e.g. 'b'
istringstream iss(b);
iss >> char_dummy >> int_value >> float_value;

你可能想了解一下。有了它,您可以使用普通的输入操作符
>
。因为您可以控制数据的格式,所以像istringstream这样的解决方案是您的朋友。与旧的C风格解决方案(如fscanf等)相比,它非常干净且不易出错。