Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

bräuchte bisschen hilfe mit scanf

Empfohlene Antworten

Veröffentlicht

Also ich fang grade an C zu lernen mit dem Buch

Galileo Computing / <openbook> / C von A bis Z

Als Compiler nehme ich unter Windos den DEV C++ Compiler (worin man auch C prog. kann)

Wenn das Programm korrekt abläuft, wird nach einer Zahl gefragt. Jetzt gibt der Anwender eine Zahl ein und drückt (¢). Anschließend gibt das Programm die Zahl, die eingegeben wurde, auf dem Bildschirm aus und wird beendet.

Das soll das Programm abarbeiten:

Problem ist das ich nicht weiß wo ich die dann anzuzeigendezahl Eintragen soll. Hätte hir gedacht scanf("%d",&Zahl); aber da kommt eine Fehlermeldung.Und wenn ich im Programm enter drücke schließt es sich wieder und zeigt die letzte Zeile nicht an.

/* scanf1.c */

#include <stdio.h>

int main (void) {

int i; /* Ein ganzzahliger Datentyp */

printf("Bitte geben Sie eine Zahl ein : ");

i=getch();

scanf("%d",&i); /* Wartet auf die Eingabe */

printf("Die Zahl, die Sie eingegeben haben, war %d\n",i);

getchar();

return 0;

}

Hätte hir gedacht scanf("%d",&Zahl); aber da kommt eine Fehlermeldung.
"Da kommt eine Fehlermeldung" ist keine ausreichende Fehlerbeschreibung. Der Text der Meldung ist immer extrem hilfreich bei der Diagnose, auch wenn er Dir nichts sagt.

Zumindest kann ich aber sagen, dass ich nicht weiß, was der Aufruf von getch da soll. Das ist auch keine Standardfunktion.

Und wenn ich im Programm enter drücke schließt es sich wieder und zeigt die letzte Zeile nicht an.
Getchar allein reicht nicht, um die Konsole offen zu halten. Schau mal hier rein:

http://forum.fachinformatiker.de/c-c/116794-problem-programm.html

Zumal getch eine ungepufferte Eingabe ist...

D.h. wenn du nach der Aufforderung z.B. 123 eingibst, wird mittels getch zu erst der Dezimalwert von 1 (=49) gespeichert und danach die scanf-Funktion mit 23 aufgerufen...

sorry das ich jetz nicht gleic zurückgeschrieben hab. Also als Fehlerlmeldung kommt da:

in function ´main´:

invalid Ivalue in unary '&'

diese Fehlermeldung kommt wenn ich das da eingebe

("%d",&100)

Bisschen versteh ich ja die Fehlermeldung also in der Funktion (teil). Ist ein unbekannter Typ deklariert oder so.

@ Klotzkopp dein Link hat mich auch nicht wirklich weitergebracht.

kleine Änderung habe euch den falschen Quelltext gegeben ist passiert als ich rumprobiert hatte. das i= get.. ist nicht drinn

/* scanf1.c */

#include <stdio.h>

int main (void) {

int i; /* Ein ganzzahliger Datentyp */

printf("Bitte geben Sie eine Zahl ein : ");

scanf("%d",&i); /* Wartet auf die Eingabe */

printf("Die Zahl, die Sie eingegeben haben, war %d\n",i);

return 0;

}

sorry das ich jetz nicht gleic zurückgeschrieben hab. Also als Fehlerlmeldung kommt da:

in function ´main´:

invalid Ivalue in unary '&'

diese Fehlermeldung kommt wenn ich das da eingebe

("%d",&100)

Bisschen versteh ich ja die Fehlermeldung also in der Funktion (teil). Ist ein unbekannter Typ deklariert oder so.

Das ist auch klar.

& gibt die Adresse einer Variable zurück. Wenn du aber einen Wert hast, der keine Variable ist, dann ist der nirgends im Speicher abgelegt. Folglich kannst du nicht auf die Adresse zugreifen.

&100 würde auch nicht viel bringen, wenn du eine int-Variable einlesen willst, kannst du nicht sagen, dass die 100 sein soll.

An sich sollte der Code eigentlich gehen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.