i/o file lezen in loop + "no source code available"-boodschap

Status
Niet open voor verdere reacties.

KristienDC

Nieuwe gebruiker
Lid geworden
2 sep 2009
Berichten
4
Hey!

Ik heb iets geprogrammeerd wat lijkt op hetgeen hieronder. Het feitelijke programma is veel groter, en ik dacht niet dat het nuttig zou zijn om de volledige code te plaatsen. Ik zou meer plaatsen, maar ik weet niet wat maar belangrijk zou kunnen zijn

Dit is het probleem: Ik heb 24 files die ingelezen moeten worden, zoals in de code te zien is. De for-lus gaat 2keer goed, maar daarna gaat ie in de "if(!input)" ( hij kan de volgende inputfile dus niet meer openen), gaat dus naar het einde van het programma, reurnt de 3 en geeft dan de boodschap: There's no source code available.

Eerst en vooral is er geen reden waarom hij de txt-files niet zou openen. Ze bestaan wel degelijk en zijn juist. En wanneer ik de forlus laat beginnen bij bijvoorbeeld hh= 02, ipv hh=00, gaat de lus ook weer goed voor 2 keer. Hij leest dan gwn 02.txt en 03.txt ipv 00.txt en 01.txt. Ik weet niet of de "no source code available"-boodscap er ook maar iets mee te maken heeft.. Want die boodschap wordt pas gegeven wnnr hij het programma heeft afgebroken, niet wnnr hij de file niet geopend krijgt. Missn off-topic: Ik heb gehoord dat deze boodschap dikwijls samenhangt met debugproblemen, maar die heb ik niet. Iemand enig idee wat het maar zou kunnen zijn? Ik heb een eerdere versie van het programma waar hij het wel juist blijft doen. In deze versie is echter niet veel veranderd, ik heb enkel de inputfiles gewijzigd.

Ik werk met visual c++ express edition

Please help!

Bedankt
Kristien

[cpp]
ifstream input;

ofstream output;

for (hh=00; hh<24; hh++)

{
std::string s;
std::stringstream out;
out << hh;
s = out.str();
if (hh < 10)
s = "0"+s;

output.open(outputname.c_str(), ios::binary);

if(!output)
{
cin.get();
return 2;
}
string inputname = s + string(".txt")
input.open(inputname.c_str());

if(!input)
{
cin.get();
return 3;
}
for (i=0; i<AANTAL_MEETPUNTEN; i++)
{
input >> Telerad.rain;
count++;
}
input.close();
output.close();
}
cin.get();
}
[/cpp]
 
Laatst bewerkt door een moderator:
2 opmerkingen over dit stukje: for (hh=00; hh<24; hh++)

1. Je wil toch 24 files inladen? Dan moet je <= gebruiken, anders zijn het er maar 23.
2. Waarom hh=00; in plaats van hh=0; ?
 
1. Je wil toch 24 files inladen? Dan moet je <= gebruiken, anders zijn het er maar 23.

Fout. Van 0 TOT 24 zijn 24 iteraties. Van 0 TOT EN MET 24 zijn er 25. Houd er rekening mee dat deze loop vanaf 0 telt en niet vanaf 1 ;)
 
En zou je wat voorbeeldbestanden kunnen plaatsen (een paar van de 24) zodat we hier kunnen testen wat er mis gaat?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan