cout über for-Schleife



  • Hi erstmal, bin Anfänger und bekomm folgenden Code nicht richtig in Gang...
    Möchte in einer Win32-Console-App eine Zeichenfolge (Wort) , 1. Zahl, 2. Zahl einlesen. Ausgegeben werden soll Das eingegebene Wort, die Zeichenfolge die sich zwischen den Positionen von der 1. und der 2. Zahl befinden.

    #include <iostream.h>
    
    void main()
    {
    	char Wort1[60];
    	int Zahl1;
    	int Zahl2;
    	cout << endl << "Wort eingeben: " << endl;
    	cin >> Wort1;
    	cout << "Zeichenkette anzeigen von: ";
    	cin >> Zahl1;
    	cout << "                      bis: ";
    	cin >> Zahl2;
    	for (Zahl1; Zahl1 > Zahl2; Zahl1++);
    	{
    	cout << Wort1[Zahl1 - 1] << endl;
    	};
    }
    

    Was bitte stimmt nicht??? Er gibt mir nur das Zeichen bei Zahl1 aus. Irgendwie durchläuft er die for-Schleife nicht richtig... Danke im voraus.

    Mfg N8walk3r



  • Versuch's mal mit einem < als Schleifenbedingung - for() wird so lange ausgeführt, wie diese Bedingung wahr ist. (und außerdem hast du ein paar Semikolons zu viel gesetzt - der Rumpf der for-Schleife ist eine leere Anweisung und der cout-Block wird nach Ende der Schleife ausgeführt)

    PS: Und gewöhn dir gleich saubere Porgrammierung an, bevor sich dieser Stil festsetzt - es heißt "#include <iostream>" (zusammen mit std::cout) und "int main()". Und anstelle des char-Arrays solltest du std::string verwenden - ist sicherer und leichter zu handhaben.



  • Klappt leider auch nicht wirklich... Ist dasselbe in grün...
    Vorher hat er mir immer das Zeichen ausgegeben, dass dann dem Wert Zahl1 entspricht. Also Beispiel:

    Wort: Microsoft
    ausgabe von: 2
    bis: 4

    vorher: "i" wurde ausgegeben
    nachher: "r" wurde ausgegeben

    irgendwo funktioniert die Schleife nicht richtig.



  • for (...) KEIN SMIKOLON {....}



  • Mach einfach

    #include <iostream>
    using namespace std;
    
    int main()
    {
    char wort[10] = "ABCDEFGHI";
    int Zahl1, Zahl2;
    cout<<"Bitte zwei Zahlen eingeben, erste Zahl: ";
    cin>>Zahl1;
    cout<<"\n"<<"Zahl2: ";
    cin>>Zahl2;
    cout<<"\n";
    for(zahl1 > zahl2; --zahl1)
    {
    cout<<wort[zahl1]<<endl;
    }
    return 0;
    }
    


  • C**++**:

    #include <string>
    #include <iostream>
    
    int main( ) {
    
    	std::string word;
    	std::string::size_type begin, end;
    
    	std::cin >> word;
    	std::cin >> begin;
    	std::cin >> end;
    
    	std::cout << word.substr( begin, end - begin - 1 ) << std::endl;
    }
    

    greetz, Swordfish


Anmelden zum Antworten