初学者遇到难题了,求教
为什么bool inword = false;赋值了,但是下面的!inword还是等于false,不应该时!inword=true吗?初学者,求各位大大指教!程序代码:
#include <stdio.h> #include <ctype.h> //为isspac()函数提供原型 #include <stdbool.h> //为bool、true、false提供定义 #define STOP '|' int main(void) { char c; //读入字符 char prev; //读入的前一个字符 long n_chars = 0L; //字符数 long n_lines = 0; //行数 long n_words = 0; //单词数 long p_lines = 0; //不完整的行数 bool inword = false; //如果c在单词中,inword等于true printf("Enter text 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); return 0; }