Quote:
Originally Posted by reCougar
Hallo ich habe hier ein kleines Problem, bin noch blutiger Anfänger in C++(gerade angefangen) und ich habe dieses Beispiel aus dem Primer, jedoch funktioniert es nicht so wie es sollte, da die Befehle nach der While-Schleife nicht ausgeführt werden.
Code:
#include "stdafx.h"
#include <iostream>;
int main()
{
int currVal = 0, val = 0;
if(std::cin >> currVal)
{
int count = 1;
while(std::cin >> val)
{
if(val == currVal)
count++;
else
{
std::cout << currVal << " occurs "
<< count << " times " << std::endl;
currVal = val;
count = 1;
}
}
std::cout << currVal << " occurs " << count << " times " << std::endl;
}
return 0;
}
Ich danke euch einmal für eure Hilfe 
|
Hi ,
das Problem ist ,dass du eine Klammer beim abschreiben falsch gesetzt hast schätze ich.
Deine While Schleife wird solange ausgeführt bis deine Bedingung(std::cin ) fehlschlägt.Das tut sie zum Beispiel ,wenn du ein Zeichen welches keine Zahl ist in eine int Variable einliest.Wenn du nur Zahlen eingibst läuft deine Schleife "für immer"(solange bis du dein Programm beendest).Ich nehme einfach mal an ,dass nach jeder Eingabe die letzte Zeile ausgeführt werden soll (std::cout << currVal << " occurs " << count << " times " << std::endl
Probier mal ob das hier den von den gewollten Effekt herbeiführt ,wenn nicht hab ich dich wohl falsch verstanden ,dann musste nochmal bisschen genauer erklären was denn genau passieren soll.
Code:
#include <iostream>
int main()
{
int currVal = 0, val = 0;
if(std::cin >> currVal)
{
int count = 1;
while(std::cin >> val)
{
if(val == currVal)
count++;
else
{
std::cout << currVal << " occurs "
<< count << " times " << std::endl;
currVal = val;
count = 1;
}
std::cout << currVal << " occurs " << count << " times " << std::endl;
}
}
return 0;
}