Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 08:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C++ While

Discussion on C++ While within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
reCougar's Avatar
 
elite*gold: 1
Join Date: Jan 2013
Posts: 372
Received Thanks: 99
Red face C++ While

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
reCougar is offline  
Old 06/06/2013, 21:44   #2
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Was für ein Verhalten erwartest du genau bei welcher Eingabe?
Schau dir die Abbruchbedingung an und überlege, was erfüllt sein muss damit du aus der Schleife springst.
Schlüsselbein is offline  
Old 06/06/2013, 21:48   #3
 
reCougar's Avatar
 
elite*gold: 1
Join Date: Jan 2013
Posts: 372
Received Thanks: 99
Ich möchte, dass er Zahlen zählt. Also wenn der Input 1 1 1 2 2 3 3 ist sollte er halt 1=3,2=2,3=2 ausgeben, jedoch lässt er den letzten wert aus, also die 3
reCougar is offline  
Old 06/07/2013, 01:48   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Ohne dein Code jetzt genau angeschaut zu haben: Benutz den Debugger. Der Umgang mit ihm ist einfach unverzichtbar - auch wenns jetzt zu Beginn vielleicht nicht so aussieht.

Allgemein zeigt die Erfahrung, dass die Leute diesen viel zu wenig benutzen. Gerade hier im Forum lassen sich 2 von 3 Problemen mit der Hilfe des Debuggers lösen.
Schlüsselbein is offline  
Old 06/07/2013, 02:59   #5
 
marykillsjane's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 1,909
Received Thanks: 522
Quote:
Originally Posted by reCougar View Post
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;
	
}
marykillsjane is offline  
Old 06/07/2013, 19:23   #6
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Quote:
Originally Posted by Schlüsselbein View Post
Ohne dein Code jetzt genau angeschaut zu haben: Benutz den Debugger. Der Umgang mit ihm ist einfach unverzichtbar - auch wenns jetzt zu Beginn vielleicht nicht so aussieht.

Allgemein zeigt die Erfahrung, dass die Leute diesen viel zu wenig benutzen. Gerade hier im Forum lassen sich 3 von 3 Problemen mit der Hilfe des Debuggers lösen.
Behoben, npnp.
MoepMeep is offline  
Reply




All times are GMT +1. The time now is 08:44.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.