Speichern von int-Variablen vom user in ein array in C
Ich bin ziemlich neu in der c-Programmierung, und auch in diesem forum, aber ich dachte, ich würde give it a try. Was ich tun möchte, ist eine Benutzer-Eingabe einer 4-stelligen Zahl. Von dort aus möchte ich die Zahl und speichern Sie in einem array, so wie ich Sie nennen könnte, arr[2], wenn ich es brauche, und so weiter und so weiter. Vielen Dank im Voraus für jede Hilfe!!!
Ich würde wirklich gerne wissen, was hier Los ist. Nochmals vielen Dank
- Sie analysieren aus einer einzigen
int
Wert..2345
. Wenn Sie möchten, dass einzelne Ziffern, die Sie brauchen, Sie ziehen einen char aus einem line-buffer (oderfgetc()
) und konvertieren Sie die einzelnen chars zuint
, dann speichern Sie jeden in Ihren Ziel-array. Sie Mai wollen überprüfen ist, in der Tat, eine Ziffer char vor der Konvertierung. Schließlich kehren Sie wieder etwas neben der vapor-formint main()
. Sie erklärt es richtig. ZurückEXIT_SUCCESS
auf ErfolgEXIT_FAILURE
sonst.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Viele Möglichkeiten es gibt, zu implementieren das Verhalten, das Sie möchten. Hier ist ein Weg, es zu tun:
Dein code nicht tut, was Sie denken, es tut.
scanf
liest eine Zeile von der Konsole aus.%d
entspricht einem Anzahl (z.B. 123), nicht ein Ziffer (d.h. 1, 2, 3). Rufen Sieprintf
in einer Schleife, nichtscanf
(d.h. Sie erfassen eine Nummer ein und drucken Sie es mehrmals).Eigentlich sehe ich es mehr als das - Sie sind unter der Annahme
integer
in C++ bedeutet Ziffer. Das array von 4 ganzen zahlen nicht halten Sie eine 4-stellige Zahl - es besitzt vier separate Ganzzahlen, von denen jeder werden kann (in der Regel) von -2147483648 bis +2147483648.Die Sache ist, es ist nicht leicht zu brechen eine Zahl in Ziffern - weil die "Ziffern" sind die Basis 10 (dezimal), während ein computer denkt in der Basis 2 (Binär). Was können wir stattdessen tun ist, Lesen Sie und schreiben Sie die Nummer und Ziffern als text, statt. Lesen Sie die ganze Zahl als einen string, und schreiben Sie jede Zahl als ein Zeichen:
Dieser code ist nicht perfekt. Wenn der Benutzer die Eingabe von "bla" es wird gedruckt "b" "l" "a" "h" anstatt beschweren sich über nicht-numerische Eingabe. Wenn der Benutzer mehr als 4 Zeichen, unsere array von Zeichen für die Anzahl überlaufen wird ernsthafte Sicherheitsrisiken und ein Absturz.
var1 ist eine ganze Zahl und Sie speichern es in jedem element des integer-array arr, damit die Ausgabe
Wenn Sie wollen, speichern Sie jede Zahl als ein Zeichen, verwenden fgets, oder wenn Sie wollen, um es zu speichern eine Nummer, tun
Haben Sie gefragt
scanf
zu Lesen, einen integer-Wert. Möchten Sie vielleicht Lesen Sie einen string statt.In eine Prise, können Sie
fgets
: