vector probleem met if

Status
Niet open voor verdere reacties.

jopie33

Gebruiker
Lid geworden
10 apr 2010
Berichten
30
Hallo,

ik probeer de code van niek_e http://www.helpmij.nl/forum/showthread.php?t=463253 te gebruiken om resoluties uit mijn config.ini bestand te lezen.

Het config.ini bestand bestaat uit een aantal regels en op de eerste regel staat de resolutie,
bijvoorbeeld: resolution=4

Alles werkt, behalve als ik bijvoorbeeld resolution=4 in mijn .ini bestand verander voor resolution=3 hij het else gedeelte uitvoert. Het is alsof alleen het laatste if-statement wordt gecheckt en de if-statements die daarvoor komen worden overgeslagen.

hier is mijn code:

[CPP]
#include <iostream>
#include <vector>
#include <string>
#include <fstream>

int WIDTH;
int HEIGHT;

using namespace std;
int main(){
ifstream infile("config.ini");
if (!infile.is_open() || !infile.good()){
cout << "Fout met openen!";
return -1;
}

vector<string> alle_regels;
string huidige_regel = "";
while (getline(infile, huidige_regel)){
alle_regels.push_back(huidige_regel);
}

cout << "er zaten " << alle_regels.size() << " regels in het bestand. Namelijk:\n";
for (unsigned i = 0; i < alle_regels.size(); i++){
cout << alle_regels << "\n";
}

if(alle_regels[0] == "resolution=1")
{
WIDTH = 800;
HEIGHT = 600;
}

if(alle_regels[0] == "resolution=2")
{
WIDTH = 1024;
HEIGHT = 768;
}

if(alle_regels[0] == "resolution=3") // HD_READY
{
WIDTH = 1280;
HEIGHT = 720;
}

if(alle_regels[0] == "resolution=4")
{
WIDTH = 1280;
HEIGHT = 1024;
}

else
{
WIDTH = 800; // gebruik default resolution
HEIGHT = 600;
}

cout << endl;
cout << "De var WIDTH: " << WIDTH << endl;
cout << "De var HEIGHT: " << HEIGHT << endl;

cin.get();
return 0;
}
[/CPP]

Heeft iemand een idee waar dit aan kan liggen? Ik denk dat het aan het vectortype ligt.
En wat zou ik moeten veranderen zodat als ik bijvoorbeeld resolution=3 neerzet hij dit wel checkt?
 
Laatst bewerkt:
Verander [cpp]if(alle_regels[0] == "resolution=1")
{
WIDTH = 800;
HEIGHT = 600;
}

if(alle_regels[0] == "resolution=2")
{
WIDTH = 1024;
HEIGHT = 768;
}

if(alle_regels[0] == "resolution=3") // HD_READY
{
WIDTH = 1280;
HEIGHT = 720;
}

if(alle_regels[0] == "resolution=4")
{
WIDTH = 1280;
HEIGHT = 1024;
}

else
{
WIDTH = 800; // gebruik default resolution
HEIGHT = 600;
}[/cpp]
eens in
[cpp]if(alle_regels[0] == "resolution=1")
{
WIDTH = 800;
HEIGHT = 600;
}

else if(alle_regels[0] == "resolution=2")
{
WIDTH = 1024;
HEIGHT = 768;
}

else if(alle_regels[0] == "resolution=3") // HD_READY
{
WIDTH = 1280;
HEIGHT = 720;
}

else if(alle_regels[0] == "resolution=4")
{
WIDTH = 1280;
HEIGHT = 1024;
}

else
{
WIDTH = 800; // gebruik default resolution
HEIGHT = 600;
}[/cpp]

Immers wordt met je huidige code steeds elke if-conditie gecontroleerd, inclusief de laatste. Als de laatste niet waar is gaat hij naar de else.
 
Dom! :eek:

Daar was ik dus nooit opgekomen, ik wist niet dat je if else moest gebruiken en maakte al mijn programma's steeds zonder problemen.

Dank je :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan