C
Dragonslayer schrieb:
die ISBN soll ohne Bindestrich untergebracht werden, als zahlenwert im prinzip.
Erstens ist der Datenbereich von int etwas begrenzt (bei 4 Byte kommst du bis ca. 2 Millionen, das heißt, du kannst nur englische und französische Bücher (siehe ISBN) speichern.
Zweitens kann als letzte Ziffer der ISBN auch ein 'X' auftauchen - und das kannst du nicht in einer int-Variable unterbringen.
Und drittens "rechnet" man gewöhnlich nicht mit ISBN-Nummern.
-> insgesamt wäre es wohl besser, stattdessen ein char-Array zu verwenden.
ja ich weis int main um den speicher nicht voll zu müllen...
Das hat nichts mit "Speicher vollmüllen" zu tun - 'int main()' und 'int main(int,char**)' sind schlichtweg die einzigen im Standard vorgesehenen Varianten der main-Funktion.
Zu deiner Korrektur: scanf() muß die Adresse der Variablen kennen, in die es einlesen soll - char-Arrays kannst du normal übergeben (werden automatisch in einen Zeiger auf den Anfang umgewandelt), aber bei normalen Variablen benötigst du den Adress-Operator:
scanf("%i",/*->*/&titel1.Erscheinungsjahr);