所以我正在尝试做一个程序来读取由空格和新行分隔的数字序列。输出应该是相同的序列,但删除不必要的零(字符序列 'EOF' 结束程序)。每个例子
好吧,我已经实现了这个目的,但遇到了一个障碍。除非我输入 EOF 序列,否则程序不会退出。也许是因为我有一段时间(1)在运行,导致无限循环。但是当我尝试删除它时,程序甚至根本不打印。我还在学习这是一个学校项目。任何帮助将不胜感激!
这是代码:
#include <stdio.h>
int main(){
char c;
int i=0;
while(1){
c=getchar();
if (i==0){
if(c=='0'){
while (c=='0'){
c=getchar();
}
}
printf("%c",c);
i=i+1;
}
else if (c==' '){
printf("%c",c);
c=getchar();
if(c=='0'){
while (c=='0'){
c=getchar();
}
}
printf("%c",c);
}
else if (c=='E'){
c=getchar();
if (c=='O'){
c=getchar();
if(c=='F'){
printf("\n");
return 0;
}
}
}
else{
printf("%c",c);
}
}
Run Code Online (Sandbox Code Playgroud)
}
重要的东西:
int c; // IMPORTANT, cannot be char
while (1) {
c = getchar();
if (c == EOF) break; // exit loop
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |