Zwei Dinge, die das Programm verhindern, dass das Ergebnis, das Sie
erwarten geben
1) read
mit von der Standardeingabe (Zeichen) und speichern, die in eine (binäre) integer lesen
2) das Ergebnis der read
in derselben ganzen Zahl zu speichern, den (falschen) Wert in 1)
einen Blick auf scanf
oder fgets
(atoi
...), hat eine zu lesen, gespeicherte Überschreiben Zeichen-Array (string), dann wandelt die Zeichen in eine binäre Zahl zu lesen, zum Beispiel
char str[20];
fgets(str, 20, stdin);
int s = atoi(str);
read
Version
char str[20];
ssize_t nread = read(STDIN_FILENO, str, 20);
int s = atoi(str);
Siehe what an integer is,
Warum denken Sie, die Ergebnisse aren‘ t richtig? Was erwartest du zu passieren? Was geben Sie dem Programm? Versuchen Sie, ein [mvce] (https://stackoverflow.com/help/mcve) zu geben, indem Sie Input eingeben und sagen, was Sie erwarten und warum Sie denken, dass es falsch ist. –
Es ist wahrscheinlich die Größe, die von der 'read()' Funktion zurückgegeben wird. –
@ChrisDodd Ich möchte den gelesenen Wert in 's' speichern - also in diesem Fall 123. Ich weiß nicht, warum die Größe statt Wert zurückgegeben wird, geschieht dies, weil' sizeof (int) '? –