#include<stdio.h>
int main(){
char c;
for(c=getchar();getchar()!='#';c=getchar()){
putchar(c);
}
}
for(a;b;c)
a在最初执行
b在每个循环之前执行
c在每个循环之后执行
而这个for循环里面,表达式a,b,c都包含getchar,也就是反复读取
-=-=-
在最开始,c=getchar(),此时将1读取进来,赋值给了c,然后执行getchar()!='#',把2读取进来与#进行比较
然后打印1,最后c=getchar(),把3读取进来赋值给c,第一次循环结束
第二次循环开始,把4读取进来与#比较,打印3,把5读取进来赋值给c,第二次循环结束
第三次循环开始,把#读取进来与#比较,循环结束
总之,你应该对getchar()函数的使用不够理解,可能被cin或scanf误导了,getchar()只是返回读入的字符,并没有赋值