(simpel) Probleem met getline()

Status
Niet open voor verdere reacties.

Dizaster

Gebruiker
Lid geworden
16 okt 2007
Berichten
35
Hallo iedereen, ik ben een beetje C++ aan het oefenen d.m.v. simpele opdrachten. Dit simpele programmaatje accepteert een aantal testcases die elk bestaan uit twee getallen gescheiden door een spatie. Deze twee getallen haalt hij uit de input, vermenigvuldigt ze en geeft de uitkomst weer als output.

Voorbeeld van input en bijbehorende output:

Code:
Input:
5
4 2
123 43
324 342
0 12
9999 12345

Output:
8
5289
110808
0
123437655

Code:
Code:
int main() 
{
    int cases, x, y, result, pos;
    string input, tempstr;
    cin >> cases;
    for (int i=0;i<cases;i++)
    {
        getline (cin,input);  
        pos = input.find(' ');
        tempstr = input.substr(0,pos);
        x = atoi (tempstr.c_str());
        tempstr = input.substr(pos+1,input.length());
        y = atoi (tempstr.c_str());
        result = x * y;
        cout << result << "\n";    
    }
    system ("pause");
}

De eerste keer dat het programma de for-lus doorloopt slaat hij getline(cin,input) over ofzo, zodra je namelijk het aantal testcases invoert geeft hij meteen als output 0, omdat result dan nog leeg is. De vijfde input mag je dan ook niet ingeven, hij heeft de lus dan al 5 keer doorlopen. Ik zou hem natuurlijk de lus 6 keer kunnen laten doorlopen in plaats van 5, maar dan output hij alsnog een keer een 0 die er net hoort. Mijn vraag is hoe ik er voor kan zorgen dat hij tijdens het eerste keer doorlopen van de lus ook om een input vraagt in plaats van meteen 0 te outputten.

Alvast bedankt voor de hulp en sorry als er iets mankeert aan de manier waarop ik de vraag presenteer, ik heb mijn best gedaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan