PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Text wandert eine Zeile weiter??


Tuper
14.12.2011, 02:32
Hi, also ich weiss nicht wieso aber beim der Ausgabe dieses Programm wird ab "Der Bonus fuer %s" der Rest des Textes eine Zeile weiter angezeigt. Ich hab kp wieso:p



#include <stdio.h>

#define EINGABELAENGE 20

float bonus(char x);

int main()
{
char name[EINGABELAENGE];
char level;
float b;

printf("Name des Angestellten: ");
fgets(name, EINGABELAENGE, stdin);
printf("\nBonus Stufe(0, 1 or 2): ");
level=(char)getchar();
b=bonus(level);
b*=100;

printf("\nDer Bonus fuer %s betraegt EUR %.2f\n\n", name, b);

system("PAUSE");
return 0;
}

float bonus(char x)
{
if(x=='0') return 0.33f;
if(x=='1') return 1.50f;
return 3.10f;
}

D@rk-€vil™
14.12.2011, 03:26
mach ma ein davon weniger ^^

\n

Tuper
14.12.2011, 04:53
mach ma ein davon weniger ^^

\n

ne daran liegt es nicht. Selbst wenn du allle entfernst kommt es auf das Selbe hinaus.

BonkeR
14.12.2011, 09:22
2 weniger, am Anfang ist auch noch einer und wenn du den Zeilenumbruch mittendrin machst wieso soll er dann auch was anderes anzeigen .

D@rk-€vil™
14.12.2011, 10:06
Ich meinte ja auch den am anfang ....

zeile 20

in so

printf("Der Bonus fuer %s betraegt EUR %.2f\n\n", name, b);dann sollte es so gehen....

@BonkeR deine idee ist falsch^^

EDIT:

Könnte aber auch so gehen....

printf("Der Bonus fuer %s betraegt EUR %.2f\n", name, b);lg

Cerberus
14.12.2011, 13:37
ich glaub, wir reden an einander vorbei ...
zeig uns doch mal bitte einen Screen, wie es jetzt aussieht

Tuper
14.12.2011, 18:11
Jo, ich sehe trotzdem nicht das es an "\n" liegt..hier mal ein pic mit dem entsprechenden Code und da habe ich nur der Übersichthaber am Ende ein "\n" gesetzt.



http://www.netvision-technik.de/forum/picture.php?albumid=80&pictureid=426



#include <stdio.h>

#define EINGABELAENGE 20

float bonus(char x);

int main()
{
char name[EINGABELAENGE];
char level;
float b;

printf("Name des Angestellten: ");
fgets(name, EINGABELAENGE, stdin);
printf("Bonus Stufe(0, 1 or 2): ");
level=(char)getchar();
b=bonus(level);
b*=100;

printf("Der Bonus fuer %s betraegt EUR %.2f\n", name, b);

system("PAUSE");
return 0;
}

float bonus(char x)
{
if(x=='0') return 0.33f;
if(x=='1') return 1.50f;
return 3.10f;
}

Cerberus
15.12.2011, 13:31
tja ...
die Variable Name enthällt ein Enter am Ende :)

das muß weg und alles ist schick :)

Tuper
15.12.2011, 19:57
hmm verstehe ich nicht, was für ein Enter und wo genau soll das sein(Zeile??). Du meinst aber nicht etwa system("PAUSE");

Cerberus
20.12.2011, 09:59
du weißt nicht, was ein Enter ist??

naja -- dann mal die Basics ....

Enter ist ein Zeichen, welches 3 unterschiedliche Möglichkeiten besitzt -- je nach System

der Bin-Code vom Enter kann sein:

chr(13)
chr(10)chr(13)
chr(10)

chr(10) = line feed
chr(13) = carriage return

Zeilenvorschub Wikipedia (http://de.wikipedia.org/wiki/Zeilenvorschub)
Wagenrücklauf Wikipedia (http://de.wikipedia.org/wiki/Wagenr%C3%BCcklauf)

so -- und den Rest solltes Du nun aber hin bekommen :)

PS: ohne dieses Wissen über die Steuerzeichen sollte NIEMAND auch nur ein Zeichen Code schreiben !!!!