Ik zal gelijk melden dat ik geen C++ programmeur ben (staat wel op het to-do lijstje). Ik programmeer voornamelijk Fortran 77/95.
Ik loop met C++ tegen een raar probleem aan. Ik probeer een string uit een inputfile te strippen van de leading spaces en tabs. Daarvoor bestaat al een functie, die gebouwd is door iemand anders. Alleen deze functie doet iets raars met de strings (bestandsnamen voor specifieke inputdata). De bestandsnamen in de inputfile zijn:
Daar wordt vervolgens van gemaakt:
Het rare is dus dat transport.TRANSP wel juist geparsed wordt. Het stuk code waar het mis gaat is:
Misschien is het ook handig te vermelden dat ik g++ v4.4 gebruik om dit te compilen, maar 4.3 en 4.5 geven hetzelfde probleem. Veel oudere versies van g++ (3.x) geven me niet deze problemen.
Heeft iemand een probleem waar het inzit? Is dit een bekende compilerbug? Of moet ik het in deze code zoeken?
Bij voorbaat dank voor de hulp.
Ik loop met C++ tegen een raar probleem aan. Ik probeer een string uit een inputfile te strippen van de leading spaces en tabs. Daarvoor bestaat al een functie, die gebouwd is door iemand anders. Alleen deze functie doet iets raars met de strings (bestandsnamen voor specifieke inputdata). De bestandsnamen in de inputfile zijn:
code:
1
2
3
4
| grimech30.dat thermo30.dat crit.dat transport.TRANSP |
Daar wordt vervolgens van gemaakt:
code:
1
2
3
4
| grimec330.dat therm300.dat crit.att transport.TRANSP |
Het rare is dus dat transport.TRANSP wel juist geparsed wordt. Het stuk code waar het mis gaat is:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| while( !feof(infile()) ) { tmp.ScanLine( infile ); buffer = " "; buffer << tmp(); buffer.Remove( buffer("!") ); if( buffer.IsGraph() == false )continue; while( isgraph( buffer[0] ) == 0 ) { buffer = buffer(1); } file_name << buffer(); }//while( !feof(infile()) ) |
Misschien is het ook handig te vermelden dat ik g++ v4.4 gebruik om dit te compilen, maar 4.3 en 4.5 geven hetzelfde probleem. Veel oudere versies van g++ (3.x) geven me niet deze problemen.
Heeft iemand een probleem waar het inzit? Is dit een bekende compilerbug? Of moet ik het in deze code zoeken?
Bij voorbaat dank voor de hulp.
Luctor et Emergo || specs