Visual Studio 2010, lokale Variablen
-
Hi,
Warum funktioniert denn dieser simple Code im neuen Visual Studio (2010) nicht mehr:
#include <stdio.h> #include <conio.h> void main() { printf("This is a Test!\n"); for(int i = 0; i < 100; i++) { printf("."); } _getch(); }
Fehler: error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
Gemeint ist die Zeile in der int i definiert ist.Definieren von lokalen Variablen funktioniert scheinbar nicht mehr? Kann ich mir irgendwie nicht vorstellen
Was mache ich falsch?
Danke für eure Hilfe!
-
Ok mir ist da Problem mittlerweile klar. Habe die Datei versehentlich .c stat .cpp benannt. --> es wurde mit dem C-Compiler übersetzt.
-
Was ja bei C-Code nicht falsch ist. VC10 kann aber kein C99.
-
Trotzdem ist immer noch mindestens jede zweite Zeile falsch und dürfte nicht übersetzt werden.
-
314159265358979 schrieb:
Trotzdem ist immer noch mindestens jede zweite Zeile falsch und dürfte nicht übersetzt werden.
Kannst du mal deine superschlauen Kommentare einstellen, die keinen hier interessieren? Da ist genau ein Fehler drinnen, nicht "jede 2. Zeile".
-
Ich sehe 6 Fehler. 3 Syntaxfehler und 3 Stilfehler.
-
Lediglich der Rückgabewert der Hauptfunktion ist falsch, sonst nichts.
Total:1 Fehler
-
#include <iostream> int main() { std::cout << "This is a test" << std::endl; for(int i = 0; i < 100; i++) std::cout << '.'; std::cin.get(); }
So gehört das. stdio.h existiert nicht, es heißt cstdio. void main, wie schon gesagt, auch falsch. printf ist C.
-
314159265358979 schrieb:
printf ist C.
Komisch, im C++-Standard steht's auch drin...
-
Deshalb ist es auch ein Stilfehler.
-
314159265358979 schrieb:
So gehört das. stdio.h existiert nicht, es heißt cstdio. void main, wie schon gesagt, auch falsch. printf ist C.
Im cstdio meines Compilers steht ein define und
#include<stdio.h>
Welches nicht durch ein Präprozessor-Wenn deaktiviert werden kann.
Und printf ist ein Design-Fehler der Applikation, jedoch kein C++-Fehler! (Der Autor meines OpenGL-Buches nutzt cout und sprintf! Was ist ein stringstream)
EDIT: Da war jemand schneller!
-
Das ist schön für dich, wenn dein Compiler ein define hat, trotzdem heißt der Header per C++ Standard cstdio.
-
Das selbe steht in cmath...
Gerundetes PI schrieb:
Das ist schön für dich,
Danke! :p
-
Wie gesagt, schön für dich, Standard sagt cmath, cstdio,...
-
314159265358979 schrieb:
Standard sagt cmath, cstdio,...
Schön für dich. Das Standard-Forum ist übrigens nebenan...
-
Überraschung, in einem Framework-Forum wird auch Standard-C++ verwendet.
-
314159265358979 schrieb:
Überraschung, in einem Framework-Forum wird auch Standard-C++ verwendet.
Newsflash: plattformabhängig != falsch.
Der Punkt ist: es interessiert keinen, wenn du hier "Fehler" aufzeigst (was du nichtmal tust, weil du erstmal nur schreibst "da sind X Fehler drinnen", ohne Hinweis darauf was denn nun falsch ist), ohne irgend etwas sinnvolles zum Thema beizutragen. Noch dazu wenn es um Fehler geht die gar keine sind. Brems dich mal etwas ein, du schreibst auch selbst oft genug Mist.
-
314159265358979 schrieb:
Überraschung, in einem Framework-Forum wird auch Standard-C++ verwendet.
Wenn Ahnungslosigkeit und Überheblichkeit zusammenkommen, wird's peinlich.
http://msdn.microsoft.com/en-us/library/x84h5b78.aspx
Außerdem kennt Microsoft Visual C++ grob geschätzt 50 Schlüsselwörter, die alle nicht im Standard stehen. Trotzdem ist all das hier On Topic und nicht falsch. So wie fflush(stdin).
-
Okay, also verwendet ihr auch printf und stdio.h? Sehr interessant.
-
314159265358979 schrieb:
Okay, also verwendet ihr auch printf und stdio.h? Sehr interessant.
Nur damit unser Code auch bei dir läuft...