Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α9.12 · Διάβασμα ακεραίου με scanf

Εργαστήριο 2, Βήμα 3 · Δυσκολία ★☆☆ · short-answer · Κεφάλαια: 9, 2

Δημιουργήστε ένα αρχείο readint.c με τα ακόλουθα περιεχόμενα:

/* File: readint.c */

#include <stdio.h>

int main() {
  int number;

  printf("Please give me a number: ");
  scanf("%d", &number);

  printf("I just read this number: %d\n", number);
  return 0;
}

Μεταγλωττίστε και τρέξτε το παραπάνω πρόγραμμα. Πώς συμπεριφέρεται;

Τι συμβαίνει αν αντί για αριθμό δώσετε μια λέξη ή μια κενή γραμμή;

Τι συμβαίνει αν αντί για αριθμό πληκτρολογήσουμε Ctrl+D (EOF);

Τι θα συμβεί αν τυπώσουμε την μεταβλητή number πριν τη διαβάσουμε;

Γιατί να μην δώσουμε μια σταθερή τιμή στην μεταβλητή number στο πρόγραμμά μας - γιατί να ζητήσουμε από τον χρήστη να δώσει μια τιμή;

Αν χρειαζόταν να διαβάσετε έναν αριθμό κινητής υποδιαστολής, πώς θα το κάνατε;

Υπόδειξη

Η scanf επιστρέφει πόσες τιμές διάβασε επιτυχώς: δεν αλλάζει τη μεταβλητή όταν αποτυγχάνει. Αναρωτηθείτε λοιπόν ποια τιμή έχει μια τοπική μεταβλητή που δεν αρχικοποιήθηκε ποτέ, και πώς η scanf χειρίζεται τα κενά και τις αλλαγές γραμμής πριν από έναν αριθμό.

Αριθμός στον οδηγό: Α9.12 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: lab-lab02-readint · Σύνδεσμος: https://progintro.github.io/study/questions/labs/lab-lab02-readint.html · Markdown (GitHub)