Zeilenumbruch \n

#2620600
Lesenswert?
• ▲
▼
Und wenn alle Stricke reißen, dann bleibt immer noch die 
Software-technische Lösung: Für immer wiederkehrende Sachen ... schreib 
dir eine Funktion.

Erst mal überlegen, wie du die Funktion benutzen möchtest:

Du möchtest zb in main() gerne schreiben können
1
int main()
2
{
3
  int choice;
4

5

6
  ....
7

8

9
  choice1 = promptUser( "\nAuswahl < >\b\b" );
10
  choice2 = promptUser( "\nStock   < >\b\b" );
11
...
12
}

so möchtest du das verwenden können. Sieht doch nicht schlecht aus.

Wie muss daher dann die Funktion aussehen?
1
int promptUser( const char* prompt )
2
{
3
  int answer;
4

5
  printf( prompt );
6
  scanf( "%d", &answer );
7
  printf( "\n" );
8

9
  return answer;
10
}

und schon hast du eine schöne neue Funktion in deinem "Werzeugkasten", 
die du immer dann benutzt, wenn du vom Benutzer eine 1-stellige Zahl 
haben willst. Du kannst das auch noch weiter aufbohren, dass du der 
Funktion zb sagst: Zahl ist gut, aber sie sollte im Bereich 0 bis 5 
sein. 6 wäre zb eine illegale Eingabe und der Benutzer muss die Eingabe 
wiederholen. zb. zb.
Mit Funktionen eröffnen sich oft ganz neue Möglichkeiten, wie man Dinge 
schön strukturieren kann. Du möchtest vielleicht auch einen zentralen 
Punkt, andem du Fehlerbehandlung machen kannst. Denn wenn dein Benutzer 
anstelle von 5 <Return> auf A <Return> drückt, dann sieht dein scanf 
ganz schön alt aus :-) Auch hier ist dann wieder die Funktion promptUser 
die Anlaufstelle um dieses Manko zu beheben. Und zwar für dein 
komplettes Programm.
Gast #2622288
Lesenswert?
• ▲
▼
Manche Leute kriegen auch nach Jahren immer noch nicht den Unterschied 
zwischen printf() und puts() und fputs() auf die Reihe.

printf() führt dann oft zu lustigen Fehlern, wenn damit zum Beispiel 
Text gedruckt wird, der vom Benutzer eingegeben wurde.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren