请问c语言中什么情况下按下回车键enter后程序就停止执行了,什么情况下按下回车键enter后还能继续输入?
下面附上使我困惑的代码:一般来说在键盘上输入enter之后控制台不就开始给我们反馈信息了吗?
但是在这个程序中输入enter起到的是一个换行的作用:
此程序是C primer plus第六版第167页上的,目的是:
编写一个统计单词数量的程序,还可以计算字符数和行数。
}
#include<stdio.h>
#include<stdbool.h>//为bool、true、false提供定义
#include<ctype.h>为isspace()函数提供原型
#define STOP '|'
int main(){
char c;//读入字符
char prev;//读入的前一个字符
long n_chars=0L;//字符数
int n_lines=0;//行数
int n_words=0;//单词数
int p_lines=0;//不完整的行数
bool inword=false;//如果c在单词中,inword等于true
printf("Enter text to be amalyzed(|to terminate):\n");
prev='\n';//用于识别完整的行
while((c=getchar())!=STOP){
n_chars++;//统计字符
if(c== '\n')
n_lines++;//统计行
if(!isspace(c)&&!inword){
inword=true;//开始一个新的单词
n_words++;//统计单词
}
if(isspace(c)&&inword)
inword=false;//到达单词的末尾
prev=c;//保存字符的值
}
if(prev!='\n')
p_lines=1;
printf("characters=%ld,words=%d,lines=%d,",
n_chars,n_words,n_lines);
printf("partial lines= %d\n",p_lines);
return 0;