#include
#include
#include
#define STOP '|'
int main(void)
{
char c;
char prev;
long n_chars = 0L;
int n_lines = 0;
int n_words = 0;
int p_lines = 0;
bool inword = false;
printf("enter next to be analyzed (| 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);
getchar();
getchar();
return 0;
}
第二个if那里,!inword为假,那为什么要把 bool inword声明为false?我觉得把inword声明为true更方便呀,intword声明为false,然后!inword也是false,这样或许会让人产生理解错误?