C Visual Studio meckert über Fehler, welche nicht auffindbar sind oO

Wassu

Ensign
Registriert
Sep. 2008
Beiträge
216
Hallo Leute,

wir haben eine Aufgabe zu erledigen und habe folgenden Code mit einem Freund geschrieben, bei ihm unter Xcode funktioniert er einwandfrei, bei mir unter VS werden unserer Auffassung nach sinnfreie Syntaxfehler ausgespuckt, welche sich einfach nicht beheben lassen. Kann bitte jemand drüber sehn und mir (hoffentlich) sagen, wieso es nicht läuft?

Code:
#include <stdio.h>

float kapital;
float b, i;


void zins() {
	float k= 0.1;
	int i=10;
	for ( k=0.1; k<=1.1; k=k+0.1) {
		 float lkapital= kapital;
			printf( "%4.d%% |", i) ;
			i=i+10;
				for (int b=1; b<=10; b++ ) {
				 lkapital = lkapital+lkapital*k;
	  				printf( "%11.2f", lkapital);
				 if ( b==10)
				 {
					 printf( "\n");
			 }
		}
	 }
 printf( " |\n");
}

void tabelle() {
	 printf( "\t |\n\t |") ;
	for (int i = 1; i<=10; i++ ) {
		printf( "%11.2d", i);
	}

	 printf( "\n -----+----------------------------------------------------") ;
	 printf( "----------------------------------------------------------\n") ;
	zins() ;
}

int main( int argc, const char * argv[] ) {
	printf( "Bitte geben sie Ihr Startkapital an:") ;
	scanf( "%f",&kapital) ;

 tabelle() ;
 return 0;
}


Vielen vielen vielen Dank schonmal!
 
Microsoft unterstützt bis auf die "//"-Kommentare keine C99 Features im C-Modus.
 
Was für Fehler spuckt VS denn aus?
 
Syntaxfehler, Klammer und Semikolen wo keine hingehören :O Bin am Verzweifeln. Gibt's ne Möglichkeit den Spaß zum Laufen zu bekommen?
 
Compiler wechseln oder auf die C99 Features verzichten - wenn ich richtig zähle, dann sind nur zwei Zeilen nicht C90 konform: 14 und 28.
 
Compiler möcht ich erst einmal nicht wechseln, da ich mich grad so erst irgendwie in VS reingefuchst habe.
Mir war das mit C99 bisher nicht bewusst. Kannst du mir verraten, mit was in diese Zeilen ersetzen kann?
 
Mein Tip: Die Line Endings codierung stimmt nicht (XCode => Mac => Line Ending als CR oder LF).
Standard in Windows sind CR+LF. Manche Tools stolpern darüber...
Lässt sich mit Notepad++ leicht ändern (Bearbeiten -> Format Zeilenende).
 
Leider hilft die Konvertierung nicht. :/
Kann man die zwei Zeilen Code nicht einfach ersetzen?
 
Also ich habe den Code jetzt mit Copy&Paste mal in ein VS 2010 Projekt kopiert und ich bekomme keinen einzigen Fehler. Läuft mit lediglich 6 Warnungen durch beim Kompilieren.
 
Natürlich kannst Du die ersetzen.
Du darfst die Variablen b bzw. i nicht in der for-Schleife deklarieren. Das muss am Anfang der Funktion gemacht werden.
Also "for(b=1; ..." statt "for(int b=1; ..." und dafür ein "int b;" an den Anfang der Funktion wo die restlichen Variablen auch schon stehen.
 
Das ist auch leider das Problem mit Microsoft, die interpretieren Dinge gerne selbst auf ihre ganz persönliche Art.
D.h. ständige Inkompatibilitäten und unnötiger Ärger für den Anwender, da man partout Standards verweigert.

Bei VS2015 braucht man leider auch nicht hoffen:
http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx

Daher am besten unter Linux lernen, später weiss man dann es ist wieder mal das MS Produkt.
 
Zuletzt bearbeitet:
dcc22 schrieb:
Das ist auch leider das Problem mit Microsoft, die interpretieren Dinge gerne selbst auf ihre ganz persönliche Art.

Den C99-Standard setzt MS nicht um. Das haben sie ja schon mehrfach geäußert. Aber den aktuellen C++-Standard versuchen sie schon, umzusetzen, auch wenn sie da bedauerlicherweise häufig hinter dem clang und dem gcc-Compiler hinterherhinken.
 
Zurück
Oben