Einstieg in C -  Thomas Theis

Einstieg in C (eBook)

Für Programmiereinsteiger geeignet

(Autor)

eBook Download: EPUB
2020 | 3. Auflage
436 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-7571-2 (ISBN)
Systemvoraussetzungen
19,92 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Mit diesem kleinschrittigen Lernkurs gelingt der Einstieg in die C-Programmierung mühelos. An vielen praxiserprobten Programmbeispielen werden die Grundlagen verständlich erklärt. Übungsaufgaben helfen dabei, das erworbene Wissen zu vertiefen und anzuwenden. Das Buch eignet sich auch bestens für Einsteiger ohne Programmierkenntnisse.

Aus dem Inhalt:

  • Editor und Compiler einrichten
  • Einführung in die Syntax
  • Schleifen, Funktionen und Zeiger anwenden
  • Daten dynamisch verwalten
  • Auf Dateien und Verzeichnisse zugreifen
  • Betriebssystem ansteuern
  • Viele Praxistipps zur Fehlersuche
  • Eine Datenbank mit SQLite aufbauen
  • GUIs mit GTK+ entwickeln
  • Raspberry Pi kennenlernen



Thomas Theis ist Dipl.-Ing. für Technische Informatik und arbeitet als Berater und Trainer. Seit vielen Jahren gibt er als EDV-Dozent Kurse in verschiedenen Programmiersprachen. Er ist Autor vieler erfolgreicher Fachbücher.

12    Eine Vertiefung der bisherigen Themen


Sie können die wichtigen Begriffe nun einordnen. In diesem Kapitel schauen wir uns genauer an, was wir bereits erarbeitet haben. Wie verbinden Sie die verschiedenen Elemente miteinander?

In den vorangegangenen Kapiteln haben wir die wichtigen Begriffe der Programmierung mit C anhand eines anschaulichen Beispiels aus dem Alltag besprochen. In diesem Kapitel werde ich sie noch einmal allgemeiner und ausführlicher erläutern.

12.1    Verschiedene Arten von Daten


In diesem Abschnitt lernen Sie die Datentypen und Operatoren in ihrer Gesamtheit kennen. Es geht auch um verwandte Themen wie Konstanten, zufällige Zahlen und vieles mehr.

12.1.1    Mehrere Daten auf einmal einlesen


Sie können mithilfe der Funktion scanf() mehrere Daten auf einmal einlesen. Zur Vereinfachung für den Benutzer kann die Dateneingabe in einer vorbestimmten Form stattfinden. Außerdem können Sie feststellen, wie viele Daten erfolgreich eingelesen werden. Diese Information können Sie zum Beispiel für die Steuerung einer Schleife verwenden.

Ein Beispiel:

#include <stdio.h>
int main()
{
int tag, monat, jahr, anzahl;

/* Eingabe mit Standard-Trennzeichen */
printf("Bitte geben Sie Tag, Monat und Jahr ein/n");
printf("Trennung mit Leerzeichen, Tab oder Return:/n");
anzahl = scanf("%d%d%d", &tag, &monat, &jahr);
printf("Datum: %d.%d.%d/n", tag, monat, jahr);
printf("Gelesen: %d/n/n", anzahl);

/* Eingabe mit Formatangabe */
printf("Bitte geben Sie Tag, Monat und Jahr ein/n");
printf("in der Form T.M.J:/n");
anzahl = scanf("%d.%d.%d", &tag, &monat, &jahr);
printf("Datum: %d.%d.%d/n", tag, monat, jahr);
printf("Gelesen: %d/n/n", anzahl);

return 0;
}

Listing 12.1    Datei »daten_ein_mehrere.c«

Der Benutzer soll drei Zahlen auf einmal eingeben, nämlich Tag, Monat und Jahr eines Datums.

  • Im ersten Fall soll er eines der sogenannten Whitespace-Zeichen, also eines der Standardzeichen zur Trennung von einzelnen Werten, verwenden: die Leertaste für ein Leerzeichen, die Taste (ê) für ein Tabulatorzeichen oder die Taste (¢). Dazu werden bei scanf() drei Platzhalter angegeben, ohne weitere Leerzeichen oder andere Zeichen davor, dazwischen oder dahinter. Es folgen die drei Variablen, in denen die Werte der Reihe nach gespeichert werden.

  • Im zweiten Fall muss das Datum in üblicher Form eingegeben werden, die drei Werte müssen also durch Punkte getrennt werden. Dazu werden bei scanf() jeweils Punkte zwischen die drei Platzhalter gesetzt. Das Programm erkennt anhand des Punkts innerhalb der eingegebenen Daten, dass nun der nächste Wert folgt.

Die Funktion scanf() besitzt auch einen Rückgabewert. Dabei handelt es sich um die Anzahl an erfolgreich eingelesenen Werten. Diese Anzahl wird hier zur Kontrolle ausgegeben, zusammen mit der Datumsangabe.

Die Ausgabe des Programms, mit Eingaben des Benutzers:

Bitte geben Sie Tag, Monat und Jahr ein
Trennung mit Leerzeichen, Tab oder Return:
15 12 2019
Datum: 15.12.2019
Gelesen: 3
Bitte geben Sie Tag, Monat und Jahr ein
in der Form T.M.J:
15.12.2019
Datum: 15.12.2019
Gelesen: 3

12.1.2    Datentypen für ganze Zahlen


Ganze Zahlen haben wir bisher in Variablen des Datentyps int gespeichert. Dies genügt für viele Zwecke. In C gibt es aber noch weitere Datentypen für ganze Zahlen, die sich nach ihrem Wertebereich und ihrem Speicherbedarf unterscheiden.

Was ist noch zu beachten?

  • Die Grenzen der Wertebereiche werden mithilfe einer Reihe von Konstanten angegeben, die in der Headerdatei limits.h stehen.

  • Andere Datentypen erfordern teilweise andere Platzhalter für die Ein- und Ausgabe.

  • Der Operator sizeof dient zur Ermittlung des Speicherbedarfs eines Datentyps, einer Variablen, eines ganzen Felds oder einer Struktur. Falls Sie eine int-Variable a deklariert haben, so können Sie ihren Speicherbedarf sowohl mit sizeof(int) als auch mit sizeof(a) ermitteln. sizeof liefert einen Wert des Typs unsigned long. Diesen sollten Sie mit dem Platzhalter %lu ausgeben.

  • Ganze Zahlen können nicht nur im Dezimalsystem (zur Basis 10), sondern auch im Oktalsystem (zur Basis 8) oder im Hexadezimalsystem (zur Basis 16) ausgegeben werden. In Abschnitt 14.8 werden wir mit Zahlen im Dualsystem (zur Basis 2) arbeiten.

Damit Sie eine Übersicht über die Datentypen für ganze Zahlen erhalten, sehen Sie zunächst in Abbildung 12.1 die Ausgabe des folgenden Programms unter einem 64-Bit-Ubuntu Linux.

Abbildung 12.1    Datentypen für ganze Zahlen

Es folgt das Programm:

#include <stdio.h>
#include <limits.h>

int main()
{
/* Wertebereiche, Speichergrößen */
printf("char: %lu Byte %d ... %d/n",
sizeof(char), CHAR_MIN, CHAR_MAX);
printf("unsigned char: %lu Byte %d ... %u/n/n",
sizeof(unsigned char), 0, UCHAR_MAX);

printf("short: %lu Byte %d ... %d/n",
sizeof(short), SHRT_MIN, SHRT_MAX);
printf("unsigned short: %lu Byte %d ... %u/n/n",
sizeof(unsigned short), 0, USHRT_MAX);

printf("int: %lu Byte %d ... %d/n",
sizeof(int), INT_MIN, INT_MAX);
printf("unsigned int: %lu Byte %d ... %u/n/n",
sizeof(unsigned int), 0, UINT_MAX);

printf("long: %lu Byte %ld ... %ld/n",
sizeof(long), LONG_MIN, LONG_MAX);
printf("unsigned long: %lu Byte %d ... %lu/n/n",
sizeof(unsigned long), 0, ULONG_MAX);

printf("long long: %lu Byte %lld ... %lld/n",
sizeof(long long), LLONG_MIN, LLONG_MAX);
printf("unsigned long long: %lu Byte %d ... %llu/n/n",
sizeof(unsigned long long), 0, ULLONG_MAX);

/* Andere Zahlensysteme */
printf("Oktal: %o + 1 = %o, %o + 1 = %o/n", 31, 32, 255, 256);
printf("Hexadezimal: %X + 1 = %X, %X + 1 = %X/n",
31, 32, 255, 256);

return 0;
}

Listing 12.2    Datei »daten_typ_ganz.c«

Bisher haben wir den Datentyp char für Zeichen verwendet. Intern werden diese Zeichen als Zahlen gespeichert. Es gibt eine Codetabelle, in der zu jedem Zeichen die entsprechende Zahl steht. Wir können diese Zahl auch für jedes Zeichen ausgeben (dazu mehr in Abschnitt 12.6.2).

Die Datentypen short, long und long long stehen für kurze, lange und sehr lange Ganzzahlen. Die Platzhalter sind %ld für long und...

Erscheint lt. Verlag 28.3.2020
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge C / C++
ISBN-10 3-8362-7571-6 / 3836275716
ISBN-13 978-3-8362-7571-2 / 9783836275712
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 1,9 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Torsten T. Will

eBook Download (2024)
Rheinwerk Computing (Verlag)
39,92
C++ lernen – professionell anwenden – Lösungen nutzen

von Ulrich Breymann

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
49,99
Das umfassende Handbuch

von Jürgen Wolf; René Krooß

eBook Download (2023)
Rheinwerk Computing (Verlag)
39,92