日期:2014-05-16  浏览次数:20728 次

在linux下用C编程,问个简单问题,请指教
以下代码是一个控制CD   播放的主函数,调用其它函数来执行。每次执行./main这个可执行文件以后,输入一个数字,例如   1   ,然后调用play()函数,开始播放CD,不过此时函数便退出了,必须重新执行一次   ./main,才能进行其他的控制,例如输入   2,暂停CD的播放。不知程序怎样调整才能在用户输入一个数字后,继续等待用户的输入,从而可以只运行一次目标程序就能进行各种控制,谢谢。

#include   <stdio.h>
int   main()
{
int   i;
printf( "正在获取音轨列表……请稍后\n ");
Get_Info();
displayMenu();

scanf( "%d ",&i);

switch(i)
{
case   1:   play();break;
case   2:   pause_cd();break;
case   3:   resume();break;
case   4:   stop();break;
case   5:   vol_ctrl();break;
case   6:   eject();break;
}
return   0;
}

------解决方案--------------------
include <stdio.h>
int main()
{
int i;
printf( "正在获取音轨列表……请稍后\n ");
Get_Info();
displayMenu();

while(1)
{
scanf( "%d ",&i);

switch(i)
{
case 1: play();break;
case 2: pause_cd();break;
case 3: resume();break;
case 4: stop();break;
case 5: vol_ctrl();break;
case 6: eject();break;
}
getchar();
}
return 0;
}

------解决方案--------------------
awjx(啦啦啦) 的代码中实现了您想要的功能,但是用while(1),这样使程序无法正常退出.
可以在while循环中添加一个适当时候退出的语句.

如可以添加一个i值为7时就退出.
如:
while(1)
{
scanf( "%d ",&i);

switch(i)
{
case 1: play();break;
case 2: pause_cd();break;
case 3: resume();break;
case 4: stop();break;
case 5: vol_ctrl();break;
case 6: eject();break;
case 7: return 0;
}
getchar();
}



------解决方案--------------------
楼上的正解

我综合一下:)
include <stdio.h>
int main()
{
int i;
printf( "正在获取音轨列表……请稍后\n ");
Get_Info();
displayMenu();

while(1)
{
scanf( "%d ",&i);

switch(i)
{
case 1: play();break;
case 2: pause_cd();break;
case 3: resume();break;
case 4: stop();break;
case 5: vol_ctrl();break;
case 6: eject();break;
case 7: return 0;
return 0;
}
getchar();
}
}