如何在读取一个字符后清除新行 \n?
How do I clear the new line \n after reading a character?
我的主要功能是在我从一个功能返回到 main()
后打印两次。
如果我输入 '\n'
并且我无法修复此问题,我很确定当它返回主程序时它会运行循环。
int main(){
char faz;
printf("What do you want to do?\nWrite C to create\nWrite R to read\nWrite U to edit\nWrite D to delete\nWrite E to exit the program\n>");
while((faz = getchar()) != EOF || faz != '\n')
{
if(faz=='C') escreve();
if(faz=='R') ler();
if(faz=='U') editar();
if(faz=='D') apagar();
if(faz=='E') exit(1);
else{ main();}
}
欢迎任何帮助,这是一个简单的图书馆管理程序。
您正在递归调用您的 main,这就是导致问题的原因,而您正在调用 exit(1)
,这通常表示正常行为的错误。我建议您执行以下操作:
int main(){
char faz;
bool done=false;
printf("What do you want to do?\nWrite C to create\nWrite R to read\nWrite U to edit\nWrite D to delete\nWrite E to exit the program\n>");
while(((faz = getchar()) != EOF || faz != '\n') && (!done))
{
done=true;
if(faz=='C') escreve();
if(faz=='R') ler();
if(faz=='U') editar();
if(faz=='D') apagar();
if(faz=='E');
else{
done=false;
printf("Please enter a valid input\n");
}
}
return 0;
}
我的主要功能是在我从一个功能返回到 main()
后打印两次。
如果我输入 '\n'
并且我无法修复此问题,我很确定当它返回主程序时它会运行循环。
int main(){
char faz;
printf("What do you want to do?\nWrite C to create\nWrite R to read\nWrite U to edit\nWrite D to delete\nWrite E to exit the program\n>");
while((faz = getchar()) != EOF || faz != '\n')
{
if(faz=='C') escreve();
if(faz=='R') ler();
if(faz=='U') editar();
if(faz=='D') apagar();
if(faz=='E') exit(1);
else{ main();}
}
欢迎任何帮助,这是一个简单的图书馆管理程序。
您正在递归调用您的 main,这就是导致问题的原因,而您正在调用 exit(1)
,这通常表示正常行为的错误。我建议您执行以下操作:
int main(){
char faz;
bool done=false;
printf("What do you want to do?\nWrite C to create\nWrite R to read\nWrite U to edit\nWrite D to delete\nWrite E to exit the program\n>");
while(((faz = getchar()) != EOF || faz != '\n') && (!done))
{
done=true;
if(faz=='C') escreve();
if(faz=='R') ler();
if(faz=='U') editar();
if(faz=='D') apagar();
if(faz=='E');
else{
done=false;
printf("Please enter a valid input\n");
}
}
return 0;
}