Problem bei einfachem Programm
-
1. Das ist nicht c++.
2. Wähle bitte aussagekräftige Titel.
-
Hallo,
danke für eure Antworten
was benötige ich dann für unsigned short int, wenn u nur für unsigned integer steht?wenn ich nur einmal den Befehl scanf habe funktioniert es auch, wenn es jedoch wie hier zwei sind funktioniert immer nur der 2. In diesem Fall also y.
Ich dachte dies wäre ein C und C++ Forum, es tut mir Leid dass ich meine Frage hier gestellt habe.
Ich hoffe jedoch noch eine Antwort auf meine Frage zu erhalten.
Vielen Dank
Gruß snipor
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hi !
eigentlich müsste dein programm richtig rechnen, wenn du positive werte eingibst, die sich im bereich von unsigned short bewegen, allerdings mit einer einschränkung bei der division.
1/4 z.B. ergibt 0.
für fließkommawerte nimm den datentyp float oder double.
für unsigned short müsstest du als umwandlungszeichen korrekter weise %hu anstatt %u schreiben.
-
Hallo,
vielen Dank für deine Hilfe.
Mit hu statt u funktioniert es. Was bedeudet dieses h?
Kann float bzw double auch negative Werte? Bei vielen Listen, welche ich gesehen habe stehen immer nur positive Werte.Vielen Dank
-
Das h steht für short.
Ja, float und double können auch negativ sein.
Von einer halbwegs vernünftigen Taschenrechner-Simulation darf man den Umgang mit negativen Zahlen und Fließkomma-Zahlen erwarten oder ?
-
Leider ist erneut eine Frage aufgetaucht.
Wie kann ich printf und scanf in einer Zeile kombinieren?
so dass dann zB. dort steht:
Bitte geben Sie die Länge an : "hier soll man dann eine Zahl eingeben" Meter
Also dass nach scanf wieder wieder printf folgt, alles jedoch in einer Zeile erscheint. Scanf soll also mitten in einem Text stehen.
-
printf( "Laenge: m\b\b\b\b\b\b" ); scanf( "%d", &i );
jajaja
-
Sind auch zwei Eingaben pro Zeile möglich?
also: Text 1.Eingabe Text 2.Eingabe Text
Vielen Dank
snipor
-
Prinzipiell ja, da brauchst du aber glaube ich 2 scanf aufrufe, sonst überschreibst du den text in der mitte.
Aber einmal eine allgemeine frage:
Durch den Thread bin ich erst einmal im größeren maße auf scanf gekommen(zuvor habe ich immer gelesen, _wtoi...(ich wollte das scanf nich benutzen)), naja jedenfalls ist wenn ich im format string z.B. "%2d" habe nicht nach zwei eingegebenen zahlen schluss(ich muss enter drücken).
Nun meine frage ist das immer so oder mach ich etwas falsch?
-
Aber wie kann bekomme ich zwei scanf aufrufe in eine zeile? Denn nach scanf springt es ja in die nächste Zeile.
Danke
snipor
-
Hier hab ich einfach mal ein codeschnipsel(daran sieht mans am einfachsten)
void func() { int int1, int2; printf("Eine Zahl bitte: __ meter, eine Zweite büdde: __ " "tonnen(\b*32)"); scanf("%2d", &int1); // Nun sollten 2 zahlen gelesen werden + \n printf("\b\b\b\b"); // 4 Zeichen zurück (\n, 1 leerzeichen und 2 _) scanf("%2d", &int2); // Nun wieder lesen und mit \n beebb#nden }
-
Ich bin auf der Tastatur ganz schön verrutscht:
Bei mir ist die backspace taste normal groß und daneben liegt #
-
Das mit der Zeile zurückgehen funktioniert nicht(dafür ist \b wohl nicht ausreichen) --> Du müsstes etwas wie SetConsoleCursorPosititon(win) aufrufen, aber es gibt sicher noch etwas anderes...
-
Kann mir niemand mehr helfen?
Danke
-
Auf ANSI-Ebene gibt es da keine Lösung, aber die meisten Systeme dürften da etwas geeignetes anbieten (gotoxy() oder SetConsoleCursorPosotion()).