Fragen die für euch warscheinlich leicht zu beantworten sind :P



  • Und

    int w(0), x(0), y(0)
    

    ist nichts anderes als

    int w(0);
    int x(0);
    int y(0);
    


  • und dieses int w(0) hat auch was mit arrays zu tun oder ist das noch mal was anderes ? ich habe das nämlich noch nie so gesehen ´, ich habe halt in diesen ganzen anfangs tuts nur einfache namen für Int wie z.B Farbe, Hausnummer, Ergebnis etc.... gesehen 😶



  • Also müsste das Array a aus 80 Feldern b aus 50 und c aus 70 Feldern bestehen nun frage ich mich immer noch was das mit dem x(0) und so auf sich hat : /



  • Ich würde dir empfehlen entweder ein gutes Tutorial im Internet zu suchen (hab jetzt leider keins zur Hand) oder noch besser, dir ein Buch über die Grundlagen von Programmierung zu besorgen.

    Wenn man Bekannte hat, die sich mit der Materie auskennen, um so besser.

    Das sind nur persönliche Empfehlungen die dir wahrscheinlich eine ganze Menge Frust und Zeit sparen werden, wenn du die Grundlagen nämlich nicht kennst/verstehst wirst du nicht weit kommen.

    Um eine Antwort auf deine letzte Frage zu liefern, setz dich mit Konstruktoren auseinander.



  • ok danke 🙂



  • Zapeth schrieb:

    Um eine Antwort auf deine letzte Frage zu liefern, setz dich mit Konstruktoren auseinander.

    Schlechter Rat, denn " int x(0); " hat nichts mit Konstruktoren zu tun.
    Dafür einiges mit Initialisierung.

    Und noch viel weniger hat das alles mit den "Grundlagen von Programmierung" zu tun, sondern ausschliesslich mit der C++ Grammatik.



  • Ok sry mein Fehler, ich war gedanklich gerade voll in Klassen und Objekten drin 🤡
    Und dann wär wohl eher ein C++ Buch gefragt.

    Trotzdem wärs nicht schlecht für C++ sich mit Konstruktoren auseinander zu setzen (was man hat, das hat man :p )



  • So Leute es tut mir Leid und nehmt es mir nicht böse aber ich habe es getan. Ich habe goto verwendet :OOO sorry aber ich mache das erst seit einer Woche ^^ deswegen würde ich konstruktive Kritik und Verbesserungsvorschläge für meinen Noob Code besser als Beleidigungen oder so was in der Art finden ^^ wusste nämlich bis vor 10 Minuten noch gar nicht was Headerdateien sind xD

    Da ich zu dumm bin herauszufinden wie ich den Code in den Anhang zu legen mache ich es jetzt wieder manuell sorry 😛

    #include "stdafx.h"
    #include <iostream>
    #include "int eingabe.h"

    int _tmain(int argc, _TCHAR* argv[])
    {

    std::cout << "Wenn sie das Programm starten möchten drücken sie bitte die 1" << std::endl << "Wenn sie das Programm beenden möchten drücken sie bitte die 2" << std::endl;

    std::cin >> eingabe;

    if (eingabe == 1)
    {
    std::cout << "Das Programm wird gestartet..." << std::endl;
    goto _Programmstart;
    }

    else

    {
    if (eingabe == 2)
    {
    printf("Das Programm wird nun beendet.");
    std::getchar();
    }

    else
    {
    std::cout << "Fehlerhafte Eingabe";
    std::getchar();

    }

    }

    _Programmstart:

    printf ("Bitte geben sie eine Zahl ein");
    std::cin >> eingabe2;
    std::cout << std::endl << eingabe2;

    std::getchar();

    std::getchar();
    return 0;
    }

    -Anhang, 3 Headerdateien:

    1)#pragma once

    #include <SDKDDKVer.h>

    2)int eingabe;
    int eingabe2;

    #pragma once

    #include "targetver.h"

    #include <stdio.h>
    #include <tchar.h>



    1. Das Programm macht nicht das was es sagt ("Das Programm wird nun beendet." - wird es aber nicht).
    2. Das "goto" bewirkt hier genau gar nichts, wenn du es wegmachst ändert sich nichts am Verhalten des Programms.
    3. getchar() um das Konsolenfenster offen zu halten ist alles andere als optimal. getline() wäre vermutlich besser. Oder gleich noch besser wäre gar keinen Code zu schreiben der das macht, sondern z.B. einfach einen Breakpoint zu setzen damit das Konsolenfenster beim Debuggen nicht zugeht bevor man den Output checken kann.
    4. Das if-else-if kannst du auch so schreiben:
    if (eingabe == 1) 
    	{ 
    		std::cout << "Das Programm wird gestartet..." << std::endl; 
    		goto _Programmstart; 
    	} 
    	else if (eingabe == 2) 
    	{ 
    		printf("Das Programm wird nun beendet."); 
    		std::getchar(); 
    	} 
    	else 
    	{ 
    		std::cout << "Fehlerhafte Eingabe"; 
    		std::getchar(); 
    	}
    

    Davon abgesehen gibt es nicht viel zu sagen - das Programm tut ja quasi nichts.

    Dinge die mit dem Programm ansich nichts zu tun haben:

    * Verwende bitte Code-Tags. Dazu schreibst du einfach [cpp] vor den C++ Code und [/cpp] hinter den C++ Code, und das Forum formatiert das dann netterweise so wie in meinem Beitrag hier zu sehen.
    D.h. aus

    [cpp]
    int main()
    {
        return 0;
    }
    [/cpp]
    

    wird

    int main()
    {
        return 0;
    }
    

    * Es gibt hier keine Anhänge, k.A. was du damit meinst. Du kannst höchstens mehrere Code-Abschnitte jeweils in eigene Code-Tags einklammern.



  • Ja als ich gestern den debug gestartet habe und aus Langeweile mal 2 gedrückt habe, habe ich auch gemerkt, dass der goto dort nichts bringt. Dass das Programm nicht beendet wird wenn ich die 2 drücke weiß ich selber xP und dass das Programm keinen Sinn hat weiß ich auch ich wollte hat nur mal Irgendwas machen, Hallo Welt hat bestimmt auch keinen Sinn >_>



  • Ich habe der goto Anweisung nun ein bisschen mehr Sinn gegeben xP Ich weiß es sieht nicht schön aus aber naja xP

    #include "stdafx.h"
    #include <iostream>
    #include "int eingabe.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	_StartAgain:
    	std::cout << "Wenn sie das Programm starten moechten druecken sie bitte die 1 und bestaetigen Sie Ihre Eingabe mit Enter." << std::endl << std::endl << "Wenn sie das Programm beenden moechten druecken sie bitte die 2 und bestaetigen Sie Ihre Eingabe bitte mit Enter." << std::endl << std::endl;
    
    	std::cin >> eingabe;
    
    	if (eingabe == 1)
    	{
    		std::cout << std::endl<< "Das Programm wird gestartet..." << std::endl;
    		goto _Programmstart;
    	}
    
    	else 
    
    	{
    		if (eingabe == 2)
    		{
    			printf("Das Programm wird nun beendet.");
    
    		}
    
    	else
    	{
    		std::cout << "Fehlerhafte Eingabe, bitte folgen sie der unten stehenden Anweisung." << std::endl << std::endl;
    		goto _StartAgain;
    		}
    
    	}
    
    	return 0;
    
    _Programmstart:
    
    	std::cout << "Bitte geben Sie eine Zahl ein" << std::endl;
    	std::cin >> eingabe2;
    	std::cout << std::endl << eingabe2;
    
    	std::getchar();
    
    	std::getchar();
    	return 0;
    }
    
    Anhang, 3 Headerdateien:
    1)#pragma once
    #include <SDKDDKVer.h>
    
    2)int eingabe;
    int eingabe2;
    
    3)
    #pragma once
    
    #include "targetver.h"
    
    #include <stdio.h>
    #include <tchar.h>
    


  • Gut.
    Und jetzt schreib das Ding so um dass du die 2 goto nicht mehr brauchst.



  • ...



  • na ja wenn man es debugged finde ich, sieht es übersichtlicher mit std::endl aus, weiß ja nicht ob es vielleicht auch anders geht ^^ und das mit den Variablen war nur Rumgespiele, am Anfang waren die noch Lokal als ich die Variablen in die Headerdatei eingefügt hatte wusste ich nämlich erst wofür man die Headerdateien beispielsweise nutzen kann ^^



  • Also Leute ich checke es nicht... ich habe im Internet gelesen das man dem goto Befehl am besten mit Schleifen aus dem Weg geht. Aber ich habe das jetzt so verstanden dass diese Schleifen solange laufen bis eine bestimmte Bedingung die man zuvor deklariert hat erfüllt ist. Aber ich habe in meinem pseudo Menü doch 2 Optionen und nicht nur eine die erfüllt werden kann 😕 kann auch sein, dass ich alles missverstanden habe und ich hier totalen Müll labere 🙄 wäre cool wenn ihr mir einen Tipp geben könntet ^^



  • Achje...

    int main()
    {
    	while (1) // Endlosschleife
    	{
    		std::cout << "Wenn sie das Programm starten moechten druecken sie bitte die 1 und bestaetigen Sie Ihre Eingabe mit Enter." << std::endl
    		          << std::endl
    		          << "Wenn sie das Programm beenden moechten druecken sie bitte die 2 und bestaetigen Sie Ihre Eingabe bitte mit Enter." << std::endl 
    		          << std::endl;
    
    		int eingabe = 2;
    		std::cin >> eingabe;
    
    		if (eingabe == 2) 
    		{ 
    			printf("Das Programm wird nun beendet."); 
    			return 0;
    		} 
    		else if (eingabe == 1)
    			break; // Schleife verlassen
    		else 
    			std::cout << "Fehlerhafte Eingabe, bitte folgen sie der unten stehenden Anweisung." << std::endl
    			          << std::endl; 
    	}
    
    	std::cout << std::endl
    	          << "Das Programm wird gestartet..." << std::endl
    	          << "Bitte geben Sie eine Zahl ein" << std::endl;
    
    	int eingabe2 = 0;
    	std::cin >> eingabe2;
    
    	std::cout << std::endl
    	          << eingabe2;
    
    	std::getchar();
    	std::getchar();
    
    	return 0; 
    }
    


  • Danke für deine Hilfe ich habe den Code verstanden und wusste bis jetzt nich nicht dass man auch ein bisschen Tricksen kann mit der while Schleife. Ich habe das gestern nämlich noch nicht herausgefunden dass auch eine while Schleife die beendet wird sobald etwas true wird existiert ,also man hatte nie wirklich eine richtige Bedingung xP oder ? ^^- aber dieses Achje... hättest du dir doch sparen können, du hast das bestimmt auch nicht alles gleich nach einem Tag verstanden oder >_> ?

    Edit: Sorry ich finde ehrlich keine Abschreibfehler oder so aber beim zweiten else sagt er mir: Error: Es wurde eine Anweisung erwartet.



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (auch C++0x und C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten