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等)相比,它非常干净且不易出错。