Warum???
-
@ all: Der eigentliche Fehler war das return. Damit hupfe ich ja aus der
ganzen Funktion heraus und nicht aus der Schleife. Ich Depp!!!
Somit funkt das Programm.@swordfish: Haben das so gelernt mit void main(void)! Das mit dem "dynamischen anlegen "ist natürlich auch eine gute Idee. War glaub ich sogar der Sinn hinter der Übung
!
@c.rackwitz: Teste mein Programm eigentlich eh immer. Habe das Bsp so oft umgeschrieben das mir das gar nicht aufgefallen ist.
@all: Thanks!!!!
-
Swordfish schrieb:
Dummie schrieb:
ich meine im Source von Swordfish...
du meinst warum ich in
int main( ) { // mit return 0; // beende, und nicht mit return; }
??
Das hat nichts mit C oder C++ zu tun. In beiden Sprachen müssen Funktionen, welche nicht void als Rückgabetyp haben, einen Wert zurückgeben - außer am Ende von main( ), denn main( ) gibt standardmäßig 0 (Null) zurück.
Nein... Das verstehe ich natürlich schon. Ich meine dieses z.B.
if( !( file = fopen( "C:\\Text.txt", "r" ) ) ) { printf( "Fehler beim Laden der Datei!\n" ); return 0; }
Warum beendest du mit 0(Keinen Fehler), wenn es doch einen gab?
Und am Ende deines Codes fehlt auch ein return 0.
Das meinte ich eigentlich.Gruß
€dit: Aber wie gesagt: Komme aus der C++ Welt
-
Ich nochmals
!
Was bedeutet eigentlich folgende Fehlermeldung???
"no matching symbolic information found"
Er lässt mir dadurch keine long-variable speichern.
#include<stdio.h> #include<stdlib.h> void main(void) { long l; printf("Geben Sie bitte ein long ein:\n"); scanf("%ld",&l); }
-
Dummie schrieb:
Nein... Das verstehe ich natürlich schon. Ich meine dieses z.B.
Swordfish schrieb:
if( !( file = fopen( "C:\\Text.txt", "r" ) ) ) { printf( "Fehler beim Laden der Datei!\n" ); return 0; }
Warum beendest du mit 0(Keinen Fehler), wenn es doch einen gab?
ISO/IEC 14882:1998 - Programming Languages - C++ schrieb:
3.6.1 Main function
[...]
3 A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument. [...]
[...]
18.3 Start and termination
[...]
8 The function exit( int status ) has additional behavior in this International Standard:
[...]
- Finally, control is returned to the host environment. If status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned. If status is EXIT_FAILURE, an implementation-defined form of the status unsuccessful termination is returned. Otherwise the status returned is implementation-defined.
Somit müsste man return EXIT_FAILURE; bei einem Fehler und return EXIT_SUCCESS bei Erfolg zurückgeben.
Dummie schrieb:
Und am Ende deines Codes fehlt auch ein return 0.
Nein:
ISO/IEC 14882:1998 - Programming Languages - C++ schrieb:
3.6.1 Main function
[...]
3 [...] If control reaches the end of main without encountering a return statement, the effect is that of executing return 0;
Dummie schrieb:
Aber wie gesagt: Komme aus der C++ Welt
Wie du siehst ist das in C und C++ das selbe.
Ich hoffe, bei der nächsten Diskussion hast du bessere Karten (Argumente)
Greetz, Swordfish
-
[edit] ich kann zu so früher Stunde nicht mehr lesen und verwechsle komischerweise long mit float... [/edit]
Greetz, Swordfish
-
Oje, schon wieder meine schlecht Angewohnheit mit void main(void)
!
1.) Wie kannst du
long l = 0.0;
schreiben?
Long ist ja eine Ganzzahl.
2.) Laut http://www.galileocomputing.de/openbook/c_von_a_bis_z/c_007_003.htm#Xxx999330 ist das Formatzeichen für double: %ld
Und genauso steht es in meinem Code.Darum verstehe ich deine Argumentation nicht:
printf( "Geben Sie bitte ein long ein:\n" ); // scanf( "%ld", &l ); // ^^ // | dir ist schon klar das d für Ganzzahl // und l der präfix für long ist!?
-
Mini1982 schrieb:
Formatzeichen für double: %ld
jetzt hat es dich mit float <-> double erwischt. Du meinst für double: %f und für long: %ld.
Gib mal ein paar Infos:
"no matching symbolic information found" beim Compilieren, Linken oder zur Runtime?
Compiler u. IDE?Greetz, Swordfish
-
Das ist eine gute Frage.
Auf jeden Fall wenn ich F5 drücke steht diese Meldung unten
im Debugfenster. Aber nicht einmal sondern gleich mehrmals.Falls ich Strg und F5 drücke funktioniert es bzw. zeigt nichts an.
Das mit dem Long beschäftigt mich nämlich schon länger.
Hab nämlich das Problem das es bei einem anderen Programm
zur Runtime zu Problematik und einer Fehlermeldung führt.
Aus diesem Grund hab ich das kleine Programm gemacht um zu überprüfen
wo der Fehler in meinem großen ist, weil es bei mir immer zu Problemen
bei den Long-Variablen kommt
-
lass dir nicht alles aus der Nase ziehen!
Swordfish schrieb:
Compiler u. IDE?
Mini1982 schrieb:
Auf jeden Fall wenn ich F5 drücke steht diese Meldung unten
im Debugfenster. Aber nicht einmal sondern gleich mehrmals.Genau diese Fehlermeldung reproduzierst du jetzt (klick drauf -> ist blau -> [Strg] + [c]) und füghst sie unbeschnitten in deinem nächsten Post ein!!
Mini1982 schrieb:
Hab nämlich das Problem das es bei einem anderen Programm
zur Runtime zu Problematik und einer Fehlermeldung führt.Hm - *in die Glaskugel guck* - und welche!? Bitte den genauen Wortlaut.
Mini1982 schrieb:
Aus diesem Grund hab ich das kleine Programm gemacht um zu überprüfen
wo der Fehler in meinem großen ist,löblich!
Mini1982 schrieb:
weil es bei mir immer zu Problemen bei den Long-Variablen kommt
und welche Probleme (Glaskugel ist zu matt, kann es nicht genau erkennen
)
Greetz, Swordfish
-