#include <stdio.h>
#define STOP '#'
int main(void){
char ch;
int n=0;
printf("请输入字符\n");
while((ch=getchar())!=STOP){
n++;
if(ch=='\n')
printf("\\n/%d\t",ch,ch);
else
printf("%c/%d\t",ch,ch);
if(n%8==0)
printf("\n");
}
printf("Done!");
return 0;
}
#include <stdio.h>
#define STOP '#'
int main(void){
char ch;
int n_space=0;
int n_enter=0;
int n_others=0;
printf("请输入内容\n");
while((ch=getchar())!=STOP){
if(ch==' ')
n_space++;
else if(ch=='\n')
n_enter++;
else
n_others++;
}
printf("空格数%d,换行符数%d,其他字符数%d\n",n_space,n_enter,n_others);
return 0;
}
第一个程序是输出输入的字符和它的ascll码值,输入#时结束,第二个是计算输入的空格 换行符和其他字符的个数,输入#时结束。
问题是为什么第一个程序在按enter键时就执行了,本意是换行的,而第二个程序按enter键并不会执行,在键入#在按enter键才执行。
两个程序的控制结构是一样的啊,为什么会有差距呢,难道是因为第二个循环结构外面还有程序么,求大神解释,不胜感激。。
#define STOP '#'
int main(void){
char ch;
int n=0;
printf("请输入字符\n");
while((ch=getchar())!=STOP){
n++;
if(ch=='\n')
printf("\\n/%d\t",ch,ch);
else
printf("%c/%d\t",ch,ch);
if(n%8==0)
printf("\n");
}
printf("Done!");
return 0;
}
#include <stdio.h>
#define STOP '#'
int main(void){
char ch;
int n_space=0;
int n_enter=0;
int n_others=0;
printf("请输入内容\n");
while((ch=getchar())!=STOP){
if(ch==' ')
n_space++;
else if(ch=='\n')
n_enter++;
else
n_others++;
}
printf("空格数%d,换行符数%d,其他字符数%d\n",n_space,n_enter,n_others);
return 0;
}
第一个程序是输出输入的字符和它的ascll码值,输入#时结束,第二个是计算输入的空格 换行符和其他字符的个数,输入#时结束。
问题是为什么第一个程序在按enter键时就执行了,本意是换行的,而第二个程序按enter键并不会执行,在键入#在按enter键才执行。
两个程序的控制结构是一样的啊,为什么会有差距呢,难道是因为第二个循环结构外面还有程序么,求大神解释,不胜感激。。