| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Wahrscheinlich sehr leichtes Problem in C im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo, ich hoffe ihr könnt mir weiterhelfen. Ist wahrscheinlich eine total einfache Sache aber ich weiß nicht sorecht was ...
![]() |
| | #1 (permalink) |
| Registriert seit: 10.01.11 ![]() Likes: 0 | Anzeige Hallo, ich hoffe ihr könnt mir weiterhelfen. Ist wahrscheinlich eine total einfache Sache aber ich weiß nicht sorecht was die Fehlermeldungen zu sagen haben. Ich versuche grade für die Schule C zu lernen, schreibe morgen eine Arbeit. :> Unter anderem werden Funktionen drinne vorkommen. Ich versuche grade das es mit einem Prototypen geht aber das klappt irgendwie nicht. Jedoch bekomme ich eine Fehlermeldung die ich nicht verstehe. Ich arbeite mit Dev-c++. Hier erstmal der Code: Code: #include <stdio.h>
int linie(int zeichen, int laenge);
int loesche_bild(int x);
int main() {
int zeichen,wieoft;
printf("\n Ich schreibe jetzt 10 ?\n");
linie('?',10);
printf("\n Welches Zeichen?: ");
zeichen=getchar();
printf("Wie oft?: ");
scanf("%i",&wieoft);
printf("\n");
linie(zeichen,wieoft);
int linie(int zeichen, int laenge) {
int i;
for(i=1; i<=laenge; i++)
printf("%c",zeichen);
return(zeichen);
}
int loesche_bild(int x) {
for(x=1; x<= 25; x=x+1)
printf("\n");
return(x);
}
return 0;
} [Linker error] undefined reference to `linie' [Linker error] undefined reference to `linie' ld returned 1 exit status C:\Dev-Cpp\Makefile.win [Build Error] [bsp0035.exe] Error 1 3 (Weiß nicht ob das wichtig ist aber der Code stammt aus dem Buch "C Programmieren von Anfang an") Mfg Geändert von want3d21 (10.01.11 um 17:57 Uhr) |
| | |
| | #2 (permalink) |
| Senior Member | Ich bin leider bei C etwas eingerostet, aber wieso hast du deine beiden Funktionen innerhalb der main-Funktion implementiert? Das scheint mir falsch zu sein. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Themenstarter Registriert seit: 10.01.11 ![]() Likes: 0 | Zitat:
Ich habe das jetzt nocheinmal unter main verschoben und jetzt geht es. Sorry ich weiß grad nicht was mit mir los ist, dass hätte mir auffallen müssen :> Vielen Danke | |
| | |
| | #4 (permalink) |
| Registriert seit: 13.08.07 ![]() Likes: 2 | Was mir noch aufgefallen ist: Die Rückgabewerte deiner 2 Funktionen sind unnötig (auch wen loesche_bild gar nicht aufgerufen wird Code: void linie(int zeichen, int laenge) Code: void loesche_bild(int x) |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 10.01.11 ![]() Likes: 0 | Habe schon das nächste Problem. Wenn ich kompiliere dann kommt keine Fehlermeldung oder ähnliches. Wenn ich aber das Programm starten will dann kommt eine Meldung. ".. hat einen Fehler versursacht und muss beendet werden" Ich weiß nicht mehr weiter. Hier der Code. Code: #include <stdio.h>
int addieren (int a, int b);
int loesche_bild();
int main()
{
int a,b,ergebnis;
printf("Erste Zahl eingeben: ");
scanf("%i,&a");
loesche_bild();
printf("Zweite Zahl eingeben: ");
scanf("%i,&b");
ergebnis = addieren (a, b);
printf ("%i + %i = %d\n",ergebnis);
return 0;
}
int addieren (int a, int b)
{
printf ("%i", (a + b));
}
int loesche_bild() {
int x;
for(x=1; x<=25; x=x+1)
printf("\n");
} |
| | |
| | #6 (permalink) |
| Registriert seit: 21.08.10 ![]() Likes: 10 | Also ein Laufzeitfehler. Versuche den Code Schritt für Schritt zu debuggen und finde heraus, an welcher Stelle dein Programm beendet wird. BTW, ich tippe mal auf die Zeile, in der das Ergebnis ausgegeben wird Ich weiß zwar nicht welchen Compiler du nutzt, aber ich kann dir nur empfehlen alle Warnungen auszugeben und diese auch zu beachten. So lassen sich Laufzeitfehler recht gut vermeiden ... Geändert von blue182 (10.01.11 um 21:59 Uhr) |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 10.01.11 ![]() Likes: 0 | Ich benutze Dev-cpp. Das Problem ist ja nur es wird beim kompilieren keine Fehlermeldungen oder ähnliches angezeigt. Nur halt wenn ich das Programm starten will ".. Fehler verursacht muss beendet werden..." |
| | |
| | #8 (permalink) |
| Registriert seit: 13.08.07 ![]() Likes: 2 | Hi, 1. Die Anführungszeichen sind falsch gesetzt. Diese kommen nur um den Formatierungsstring. Code: scanf("%i",&a); Code: scanf("%i",&b); Code: ergebnis = addieren (a, b); Code: int addieren (int a, int b)
{
return (a+b);
} Code: printf ("%i + %i = %d\n",ergebnis); Richtig wäre: Code: printf ("%i + %i = %i\n", a, b, ergebnis); Nun müsste dein Programm etwa wie folgt aussehen: Code: #include <stdio.h>
int addieren (int a, int b);
int loesche_bild();
int main()
{
int a,b,ergebnis;
printf("Erste Zahl eingeben: ");
scanf("%i",&a);
printf("Zweite Zahl eingeben: ");
scanf("%i",&b);
ergebnis = addieren (a, b);
printf ("%i + %i = %i\n", a, b, ergebnis);
return 0;
}
int addieren (int a, int b)
{
return (a+b);
}
int loesche_bild() {
int x;
for(x=1; x<=25; x=x+1)
printf("\n");
} Geändert von thodt (10.01.11 um 22:06 Uhr) |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |