2016-08-09 43 views
-2

我想在句子结尾处打印'\ n'。如何打印' n'只在C while循环中最后一个字符?

就像

你好我的朋友

呦嗨

,这里是我的代码

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

printf("\n"); 
} 

,但它不到风度的工作。

我应该加一个条件打印“\ n”

可能喜欢

if(last character) 
printf("\n"); 

,但我不知道该怎么做

+2

定义句子结尾,也许你应该包括'\ n'(10)作为可接受的字符代码 – dvhh

+0

哦,这是一个好主意 – PvzAKho

+1

如果只是读单个字符,然后'scanf'是矫枉过正。使用例如['fgetc'](http://en.cppreference.com/w/c/io/fgetc)改为:'int b; while((b = fgetc(stdin))!= EOF){...}' –

回答

1

这里的问题是,你不't 知道最后一个字符发生时,至少不是里面的这个循环。因此,解决问题的简单方法就是将新行的打印移出循环。

+0

但我需要输入多一个句子,我希望在每个句子的末尾都可以打印'\ n' – PvzAKho

+0

@PvzAKho然后,您需要定义句子的结尾。 –