Hello Sugaya-san and Rene,
is_open() is missing in libstrm.cxx, indeed. Other setups,
like vcstrm.cxx, bcstrm.cxx, gcc3strm.cxx all have this one.
I'll add this function in next release.
Thank you
Masaharu Goto
>Date: Sun, 20 Jan 2002 18:45:25 +0900
>From: sugayam@post.kek.jp
>To: brun@pcbrun.cern.ch
>Cc: sugayam@post.kek.jp, cint@pcroot.cern.ch, roottalk@pcroot.cern.ch
>Subject: [CINT] Re: [ROOT] A problem in bstring.h
>
>Masahiro Sugaya---------------------------
>Address: 1-1 Oho, Tsukuba, Ibaraki 305-0801 Japan
>Office: 0298-79-6123
>Mail: sugayam@post.kek.jp
>From: Rene Brun <brun@pcbrun.cern.ch>
>Subject: Re: [ROOT] A problem in bstring.h
>Date: Sun, 20 Jan 2002 10:11:14 +0100 (MET)
>Message-ID: <Pine.LNX.4.04.10201201008210.11432-100000@pcbrun.cern.ch>
>Hi rooters.
>
>Well I didn't write enough infomation in the previous mail.
>My root version is the latest version fetched from CVS.
>
>I changed the script as Brun said. But the error occurs.
>
>------test.C--------
>#include <string>
>void test() {
> ifstream fi("test.dat");
> //cout << fi.is_open() << endl;
> string t;
> fi >> t;
> cout << t << endl;
>}
>
>root[1] .x test.C
>Error: Symbol i is not defined in current scope FILE:bstring.h LINE:2523
>Error: Failed to evaluate i.operatorvoidError: Binary operator oprand missing
FILE:bstring.h LINE:2523
>*** Interpreter error recovered ***
>
>
>> Hi Masahiro,
>>
>> There are several functions of ifstream currently not accessible from
>> CINT.
>> Masa may want to comment on this.
>>
>> You can run your test in the following way:
>>
>
>>
>>
>> Rene Brun
>>
>> On Sun, 20 Jan 2002 sugayam@post.kek.jp wrote:
>>
>> >
>> > Hi rooters,
>> > I have some problems using fstream in the root script.
>> >
>> > My root ver. is 3.02/07. linux redhat 6.1.
>> >
>> > The probrem is that next script test.C doesn't work well.
>> > -----test.C----------
>> > {
>> > ifstream fi("test.dat");
>> > cout << fi.is_open() << endl;
>> > string t;
>> > fi >> t;
>> > cout << t << endl;
>> > }
>> >
>> > The error output is
>> > root[1] .x test.C
>> > ==> ifstream::is_open () in current scope FILE:test.C LINE:3
>> > ==> Possible candidates are...
>> > ==> Possible candidates are...
>> > ==> filename line:size busy function type and name (in ifstream)
>> > ==> filename line:size busy function type and name (in fstreambase
)
>> > ==> filename line:size busy function type and name (in ios)
>> > ==> filename line:size busy function type and name (in istream)
>> > ==> filename line:size busy function type and name (in ios)
>> > ==> *** Interpreter error recovered ***Possible candidates are...
>> > ==> filename line:size busy function type and name (in ifstream)
>> > ==> filename line:size busy function type and name (in fstreambase
)
>> > ==> filename line:size busy function type and name (in ios)
>> > ==> filename line:size busy function type and name (in istream)
>> > ==> filename line:size busy function type and name (in ios)
>> > ==> *** Interpreter error recovered ***
>> >
>> > So I commented out the line of cout << fi.is_open() << endl;
>> > -----test.C----------
>> > {
>> > ifstream fi("test.dat");
>> > //cout << fi.is_open() << endl;
>> > string t;
>> > fi >> t;
>> > cout << t << endl;
>> > }
>> >
>> > but it said
>> >
>> > root[1] .x test.C
>> > ==> Error: Symbol i is not defined in current scope FILE:bstring.h
LINE:2523
>> > ==> Error: Failed to evaluate i.operatorvoidError: Binary operator oprand
missing FILE:bstring.h LINE:2523
>> > ==> *** Interpreter error recovered ***
>> >
>> >
>> > Masahiro Sugaya---------------------------
>> > Address: 1-1 Oho, Tsukuba, Ibaraki 305-0801 Japan
>> > Office: 0298-79-6123
>> > Mail: sugayam@post.kek.jp
>> >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:39 MET