Das Buch "C - Programmieren von Anfang an"

03/05/2013 18:45 XElectriCXxx#1
Ja ich habe das Buch und bin bei Kapitel 3.1. Da soll ich eine Konsolenanwendung schreiben das mir dann x und y addiert,multipliziert ect.
Aber der zeigt mir einen Fehler an...

Mein Code:

Meine Fehlermeldung:

Kann mir jemand sagen was daran falsch ist??
03/05/2013 19:13 Jeoni#2
Steht doch in der Fehlermeldung: die Funktion 'scanf' könnte unsicher sein. Es wird stattdessen 'scanf_s' empfohlen.
Also deine 'scanf's durch 'scanf_s's ersetzen, dann dürfte sich das wohl geklärt haben ;)
Mit freundlichen Grüßen
Jeoni
03/05/2013 19:23 XElectriCXxx#3
ah oke danke.. ja die fehlermeldung war wohl länger als angezeigt.. :P
03/05/2013 19:41 snow#4
scanf ist halt unsicher wenn du z.B. einen String einliest, da kann es z.B. vorkommen, dass du mehr Speicher benötigst als reserviert ist. Nicht gerade gut für z.B. Systeme, die auf Sicherheit ausgelegt sind.
scanf_s dürfte klappen, alternativ kannst du auch was eigenes schreiben:

Auf die Schnelle:
int einlesen() {

int i = 0;
char tmp = 0;

while ((tmp = getchar()) != '\n') {

if (tmp >= '0' && tmp <= '9')
i = i * 10 + (tmp - '0');
}

return i;

}

Aber das kommt bestimmt noch. :D
03/05/2013 20:00 XElectriCXxx#5
^^ scanf_s hat schon geklappt danke ^^
03/05/2013 23:40 .SkyneT.#6
Btw. ist das keine Fehlermeldung, sondern eine Warnung. :P
03/07/2013 18:23 Rullx3#7
Wenn du den code kleiner gestalten willst kannst du auch scanf("%i %i ",&zah1,&zahl2); benutzen dann musst nichts doppelt machn :P