Rautezeichen
-
hi
man kann sehen,er macht sein Job richtig aber geht nach eine sec wieder weg
woran kann das liegen bei return hab eich viele Varianten ausprobiert aber leider Erfolglos.lg
-
Hi,
es klappt einfach nicht bitte um hilfe.!
danke
lg
-
the.neo schrieb:
hi
man kann sehen,er macht sein Job richtig aber geht nach eine sec wieder weg
woran kann das liegen bei return hab eich viele Varianten ausprobiert aber leider Erfolglos.lg
Das versteh ich nicht? ... was meinst du damit?
-
hi,
das Programm startet und ich kann sehen das es Ergebnis auch kommt aber es stürzt nach paar Sekunde ab.
int main() { int j,i; char Komma[5][6] = {" ", " ", " ", " ", " *"}; char Null[5][6] = {"#####", "* #", "# #", "# #", "#####"}; . . . char Neun[5][6] = {"#####", "# #", "#####", " #", "#####"}; char Z[10]; int g ,wg,e; printf("Zahl1 ein geben : "); scanf("%d",&g); printf("\n zahl2 : "); scanf("%d",&wg); e = g-wg; sprintf(Z, "%d", e); for (i = 0; i < 5; ++i) // schleife um 5 mal Rautezeichen in 5 reihen { for (j = 0; j < strlen(Z); ++j) // strlen bestimmt die länge von string { switch (Z[j]) // die Schubladen { case ',': printf("%s", Komma[i]); break; case '0': printf("%s", Null[i]); break; case '1': printf("%s", Eins[i]); break; case '2': . . . case '9': printf("%s", Neun[i]); break; } printf(" "); // abstandhalter zwischen 2 ziffern } printf("\n"); // nach jede array eine Zeile runter kommen } return getchar(); }
-
In dem Fall würd ich den Debugger mal zur rate ziehen.
Der sagt dir, an welcher Stelle es kracht.Bei dem bestehenden Code lässt es sich nur schwer rausfinden.
-
wie soll ich es mit visual Studio 2005 machen.?
ich hoffe das ich richtig gemacht habe aber verstehen mache ich von diese Warnungen nix.
> mu.exe!main() Line 30 C mu.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C mu.exe!mainCRTStartup() Line 403 C kernel32.dll!753b3677() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77089d72() ntdll.dll!77089d45()
Warning 1 warning C4996: 'scanf' was declared deprecated Warning 2 warning C4996: 'scanf' was declared deprecated Warning 3 warning C4996: 'sprintf' was declared deprecated Warning 4 warning C4018: '<' : signed/unsigned mismatch
lg
-
Deine angegebenen Warnungen haben mit dem von dir beschriebenen Problem wohl nichts zu tun.
"deprecated" sagt lediglich aus, dass diese Funktion in zukünftigen Versionen eventuell nicht mehr unterstützt wird.
Warnung 4 bezieht sich auf strlen welche einen unsigned int (size_t) zurückgibt und diese wird mit einem int verglichen.Nun kann ich dir jetzt schlecht ne Bedienungsanleitung zum Debugger schreiben.
Aber du solltest dir ernsthaft Zeit nehmen, die funktionsweiße zu lernen.
Der Debugger gehört zu den wichtigsten Werkzeugen, die man zum proggen braucht.
Microsoft wird da irgendwo schon was habenZu deinem Problem ... poste mal den ganzen Code
-
@BasicMan01 Danke sehr lieb von dir
ehrlich gesagt möchte sehr gerne mehr zeit nehme und lernen aber habe ich kaum Zeit jede Woche gehe ich ein Projekt ab. in Verschiedene Fächer.
ich habe in meine Plan nur 3 Stunde am Tag Programmieren lernen mehr schaffe ich nicht.#include <stdafx.h> #include <stdio.h> #include <string.h> int main() { int j,i; char Komma[5][6] = {" ", " ", " ", " ", " *"}; char Null[5][6] = {"#####", "* #", "# #", "# #", "#####"}; char Eins[5][6] = {" #", " # #", "# #", " #", " #"}; char Zwei[5][6] = {"#####", " #", "#####", "# ", "#####"}; char Drei[5][6] = {"#####", " #", "#####", " #", "#####"}; char Vier[5][6] = {"# #", "# #", "#####", " #", " #"}; char Fuenf[5][6] = {"#####", "# ", "#####", " #", "#####"}; char Sechs[5][6] = {"#####", " #", "#####", "# #", "#####"}; char Sieben[5][6] = {"#####", " #", " # ", " # ", " # "}; char Acht[5][6] = {"#####", "# #", "#####", "# #", "#####"}; char Neun[5][6] = {"#####", "# #", "#####", " #", "#####"}; char Z[10]; int g ,wg,e; printf("Zahl1 ein geben : "); scanf("%d",&g); printf("\n zahl2 : "); scanf("%d",&wg); e = g-wg; sprintf(Z, "%d", e); for (i = 0; i < 5; ++i) // schleife um 5 mal Rautezeichen in 5 reihen { for (j = 0; j < strlen(Z); ++j) // strlen bestimmt die länge von string { switch (Z[j]) // die Schubladen { case ',': printf("%s", Komma[i]); break; case '0': printf("%s", Null[i]); break; case '1': printf("%s", Eins[i]); break; case '2': printf("%s", Zwei[i]); break; case '3': printf("%s", Drei[i]); break; case '4': printf("%s", Vier[i]); break; case '5': printf("%s", Fuenf[i]); break; case '6': printf("%s", Sechs[i]); break; case '7': printf("%s", Sieben[i]); break; case '8': printf("%s", Acht[i]); break; case '9': printf("%s", Neun[i]); break; } printf(" "); // abstandhalter zwischen 2 ziffern } printf("\n"); // nach jede array eine Zeile runter kommen } return getchar(); }
-
Was gibst du denn ein?
printf("Zahl1 ein geben : "); scanf("%d",&g); printf("\n zahl2 : "); scanf("%d",&wg); e = g-wg; sprintf(Z, "%d", e);
Vermutung:
Z kann nur 9 Zeichen + Nullterminierung aufnehmen.
Ein int (4 Byte) hat einen Wertebereich von −2147483648 bis 2147483647.
Bei maximaler Ausschöpfung sind das allein 10 Zeichen.
-
ich gebe da bei zahl1 10 und bei zahl2 3 ein
Ergebnis kommt 7.
diese 7 kommt nur als Rautenzeichen für 1 sec auf dem Bildschirm und dann ist weg Konsole schlisst sich Automatik.lg
-
Du hast noch Zeichen im Eingabestrom, deswegen wartet getchar nicht auf eine Eingabe.
Starte das ganze mal mit Strg+F5 oder setz nen Haltepunkt am Ende.
-
Haltepunkt ist doch ganz am ende
return getchar(); oder denke ich das falschemit strg f5 funktioniert.
-
danke