回复 12楼 longlong89
#include <stdio.h>
#define NONBLANK 'a'
main()
{
int c, lastc;
/*究竟这个last定义的是什么东西?是一个变量还是什么?*/
lastc = NONBLANK;
/* 这里我理解不来?应该是宏定义了NONBLANK是为'a'啊?那last这里不是就是被赋值了么?*/
while((c = getchar()) != EOF)
{
if(c != ' ')
/* 如果该字符不是空格就输出 */
putchar(c);
if(c == ' ')
if(lastc != ' ')
/*那么这个IF语句就是判断的last不等空格?*/
putchar(c);/* 如果当前是空格就输出,并把当前值赋给lastc,下次如果c的值还是空格,就不输出,而再把值赋给lastc */
lastc = c;
}
/*对于这里的理解应该是把空格赋给last啊?然后才能在下次循环的时候判断(lastc != ' ')的情况下再执行输出语句 putchar(c);不是么?*/
}
/* EOF,End Of File,实际上 EOF 的值通常为 -1,但它依系统有所不同。它实际上是个宏定义,你在头文件stdio.h中可以看到它的声明,windows中一般用ctrl+z代表结束码*/
你对这个程序理解的话,帮忙把我的疑问解答一下,我实在理解不了也。谢谢。。