Was ist denn hier im Busch?
-
Hallo, ich benutze den Visual C++ 6.0 Compiler. Ich hab einfach mal so eine for Schleife gemacht die das Alphabet ausgibt, wobei jeder Buchstabe auf einer Zeile steht, hier der Code:
#include <iostream.h> void main() { char i; for(i=65;i<=90;i=i+1) { cout<<i<<endl; }; };
Wenn ich das Prog starte, dann zeigt er aber in der ersten Zeile den letzten Buchstaben an und mehr nicht. Wenn ich aber aus Volkards C++ Kurs diese Funktion hier nehme:
#include <iostream.h> void main() { int i; for(i=1;i<=10;i=i+1) { cout<<"Schleifendurchlauf Nummer "<<i<<endl; }; };
dann geht es so wie man es erwartet. An was soll das denn liegen? Da ist doch absolut kein Unterschied und auch an char oder int liegt es nicht. Ist das ein Bug? Ich habe es in ein und demselben Workspace gemacht!
PS: Und das Schönste ist, wenn ich die Funktion von Volkard nehme und sie umwandle in meine, dann geht es. Sobald ich aber wieder alles weg lösche und exakt das gleiche wieder eingebe geht es nicht mehr. Hä???
-
michaelwitzik schrieb:
#include <iostream.h> void main() { char i; for(i=65;i<=90;i=i+1) { cout<<i<<endl; }; };
Wenn ich das Prog starte, dann zeigt er aber in der ersten Zeile den letzten Buchstaben an und mehr nicht.
- <iostream.h> ist veraltet, verwende stattdessen <iostream> und beachte, dass alle Elemente der Standardbibliothek im Namensbereich 'std' liegen
- void main() gibts nicht (auch wenns der Visual C++ 6 vielleicht schluckt). Die Hauptfunktion braucht einen Rückgabewert: int main()
- Warum deklarierst du den char nicht erst dann, wenn du ihn auch brauchst? Außerdem könntest du diesen bei der Initialisierung bzw. Bedingung Zeichenliterale verwenden:
for (char i='A'; i<='Z'; i++) std::cout << i << '\n';
Soviel zu deinem Code... bei deinem Problem kann ich dir leider auch nicht weiterhelfen;
möglicherweise wird aber nach 25 Zeilen einfach weitergescrollt, deshalb siehst du nur mehr den
letzten Buchstaben (das Z) in der ersten Zeile.gruß,
walker
-
Hi.
Das ist richtiger Code :#include <iostream> int main() { for (char c = 'A'; c < ('Z' + 1); ++c) std::cout << c << ", " << (char)(c ^ 32) << std::endl; return 0; }
Das funktioniert bei mir wunderbar...
mfg BlueShift
-
Wenn ich iostrem ohne ".h" schreibe, dann kommt ein Fehler.
-
ja, in den neuen headern sind alle funktionen in namespaces
schrreib entweder std::cout statt cout oder using namespace std; unter #include<iostream>
-
Aha, wo finde ich eigentlich ein wirklich aktuelles C++ Tutorial?
-
gute tutorials die wirklich alle bereiche abdecken gibts keine soweit ich weis.
aber es gibt jede menge gute bücher...
ich kann dir "c++ lernen und professionell anwenden" empfehlen
-
michaelwitzik schrieb:
Aha, wo finde ich eigentlich ein wirklich aktuelles C++ Tutorial?