错误:成员引用类型为'std :: ifstream'(aka'basic_ifstream <char>')?

时间:2019-06-19 01:58:24

标签: c++ histogram root fstream ifstream

我得到一些分析结果来创建一个文本文件。使用这个具有三行的文本文件,我想通过ROOT绘制3D直方图。但是,出现以下错误:

  

错误:成员引用类型'std :: ifstream'(aka'basic_ifstream ')不是指针;您是要使用'。'吗?

幸运的是,我曾经编写过相同类型的cc文件,因此比较并检查了所有代码,没有发现非法句子,依此类推。调用文本文件名正确。

*我编写的代码如下。

{
gROOT->Reset();

#include<fstream>

double x,y,z;

TCanvas *c1 = new TCanvas("c1","SNR_SOverSqrtS_Lam_ent_0618_1",1,10,500,400);
TH3S *h1 = new TH3S("h1","SNR_SOverSqrtS_Lam_ent",200,0,2,200,0,1,200,0,700);

ifstream data;
data->open("hist_SNR_SOverSqrtS_Lam_ent_0618.txt");

while(data>>x>>y>>z)
    h1->Fill(x,y,z);
h1->SetXTitle("SN");
h1->SetYTitle("S/sqrt(S)");
h1->SetZTitle("Lambda Entry");
h1->Draw();

c1->Print("hist_SNR_SOverSqrtS_Lam_ent_0618.png");

}

*我制作的文本文件是以下格式。

1.52179e+00 2.38017e+01 5.66520e+02
1.38280e+00 2.14820e+01 4.61478e+02
1.38280e+00 2.14820e+01 4.61478e+02
1.48307e+00 2.19478e+01 4.81706e+02
1.48307e+00 2.19478e+01 4.81706e+02
1.41002e+00 1.90331e+01 3.62260e+02
1.54246e+00 1.95385e+01 3.81754e+02

0 个答案:

没有答案