Benutzer mit den meisten Antworten
Variable in for-Schleife deklarieren

Frage
-
Hallo,
Ich hab das Problem, dass ich keine Variable in einer for-Schleife deklarieren kann.
error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' error C2143: Syntaxfehler: Es fehlt ')' vor 'Typ' error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' error C2065: 'i': nichtdeklarierter Bezeichner warning C4552: '<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet error C2065: 'i': nichtdeklarierter Bezeichner error C2059: Syntaxfehler: ')' rror C2143: Syntaxfehler: Es fehlt ';' vor '{' error C2065: 'i': nichtdeklarierter Bezeichner error C2065: 'i': nichtdeklarierter Bezeichner
Gibt es da irgendwelche Einstellungen, damit das möglich wird?
Ach ja... Es liegt nicht an mir, denn mit anderen Compilern funktionierts. :D
PS: Die Programmiersprache ist C und nicht C++. C kann man wohl nicht auswählen..
Antworten
-
Das if (1) kann man vergessen.
Und warum willst Du nicht den C++ Compiler verwenden. Du musst ja keine Klassen verwenden. Der Syntax ist nur klarer. Überladungen sind definiert. Typen konsistent.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Als Antwort markiert Ionut DumaModerator Dienstag, 6. August 2013 13:15
Alle Antworten
-
Hi,
auch wenns nicht an deinem Code liegt, wäre dieser sehr hilfreich. Poste daher bitte den kompletten Codeblock. Ohne den kann man dir da nur bedingt helfen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Danke für die Antwort. :)
Hier ist der Code:
do { printf("\n\nEingabe: "); fgets(stringEingabe, 100, stdin); for(int i = 0; i < BENCH_ANZAHL; i++) { ok = strcmp(stringEingabe, saveLocation[i]); if(ok == 0) exist++; ok = strcmp(stringEingabe, loadLocation[i]); if(ok == 0) exist++; } } while(exist < 0);
-
In C kann man meines Wissens Variablen nur am Anfang der Funktion deklarieren.
Einfach mal "int i;" an den Anfang der Funktion verlegen und "for(i=0...."
PS: Man kann unter den Eigenschaften des Projekts (C/C++->Kompilierungsart) auch einstellen, dass alles (auch C-Code) mit dem C++-Compiler übersetzt werden soll. Es könnte aber sein, dass dann andere Sachen nicht gehen.- Bearbeitet Heiko Lewin Dienstag, 30. Juli 2013 22:08 Ergänzung
-
Geht nicht anders. War aber auch etwas ungenau C-Grammatik. Es genügt die Deklaration an den Beginn des Compound-Statements, also der Block zwischen { und }, zu schieben. Etwas wie
if(1) { int i; for(i=0; i<10; ++i) { } }
funktioniert.- Bearbeitet Heiko Lewin Mittwoch, 31. Juli 2013 07:52
-
Das if (1) kann man vergessen.
Und warum willst Du nicht den C++ Compiler verwenden. Du musst ja keine Klassen verwenden. Der Syntax ist nur klarer. Überladungen sind definiert. Typen konsistent.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Als Antwort markiert Ionut DumaModerator Dienstag, 6. August 2013 13:15
-
Hallo BlackMich,
Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
Wenn nicht, neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.Danke und viele Grüße,
Ionut
Ionut Duma, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Ionut DumaModerator Dienstag, 6. August 2013 13:15