2016-08-09 138 views
-2

Ich möchte ein '\ n' am Ende des Satzes drucken.Wie ' n' nur das letzte Zeichen in C While-Schleife zu drucken?

gerade wie

Hallo mein Freund

Yo Hallo

und hier ist mein Code

while(scanf("%c",&b)!=EOF) 
{ 
if((b>=97&&b<=122)||(b>=65&&b<=90)||b==32) 
printf("%c",b); 

printf("\n"); 
} 

aber es Arbeit dosn't.

sollte ich hinzufügen, eine bedingte drucken ‚\ n‘

es

mögen
if(last character) 
printf("\n"); 

aber ich weiß nicht, wie man das macht

+2

Definieren Sie das Ende des Satzes, vielleicht sollten Sie '\ n' (10) als akzeptierten Zeichencode einschließen – dvhh

+0

oh das ist eine großartige Idee – PvzAKho

+1

Wenn nur einzelne Zeichen zu lesen, dann 'scanf' ist Overkill. Verwendung z.B. ['fgetc'] (http://en.cppreference.com/w/c/io/fgetc) statt:' int b; while ((b = fgetc (stdin))! = EOF) {...} ' –

Antwort

1

Das hier Problem ist, dass Sie don 't wissen,, wenn das letzte Zeichen passiert, zumindest nicht innerhalb der Schleife. Die einfache Lösung für Ihr Problem besteht also darin, den Ausdruck der neuen Zeile einfach aus der Schleife zu entfernen.

+0

aber ich muss mehr als einen Satz eingeben, und ich hoffe, am Ende jedes Satzes kann ein '\ n' – PvzAKho

+0

@PvzAKho drucken Dann müssen Sie definieren, wie ein Satz endet. –