这段C代码为什么不能正常运行?
C语言调用DOS命令实现定时关机:#include<stdio.h>#include<string.h>#include<stdlib.h>intprint(){prin...
C语言调用DOS命令实现定时关机:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int print()
{
printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
printf("╔═══╧╧C语言关机程序 ╧╧═══╗\n");
printf("║※1.实现10分钟内的定时关闭计算机 ║\n");
printf("║※2.立即关闭计算机 ║\n");
printf("║※3.注销计算机 ║\n");
printf("║※0.退出系统 ║\n");
printf("╚═══════════════════╝\n");
return 0;
}
void main()
{
system("title C语言关机程序");//设置cmd窗口标题
system("mode con cols=48 lines=25");//窗口宽度高度
system("color 0B");
system("date /T");
system("TIME /T");
char cmd[20]="shutdown -s -t ";
char t[5]="0";
print();
int c;
scanf("%d",&c);
getchar();
switch(c)
{
case 1:printf("您想在多少秒后自动关闭计算机?(0~600)\n");scanf("%s",t);
system(strcat(cmd,t));break;
case 2:system("shutdown -p");break;
case 3:system("shutdown -l");break;
case 0:break;
default:printf("Error!\n");
}
system("pause");
exit(0);
} 展开
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int print()
{
printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
printf("╔═══╧╧C语言关机程序 ╧╧═══╗\n");
printf("║※1.实现10分钟内的定时关闭计算机 ║\n");
printf("║※2.立即关闭计算机 ║\n");
printf("║※3.注销计算机 ║\n");
printf("║※0.退出系统 ║\n");
printf("╚═══════════════════╝\n");
return 0;
}
void main()
{
system("title C语言关机程序");//设置cmd窗口标题
system("mode con cols=48 lines=25");//窗口宽度高度
system("color 0B");
system("date /T");
system("TIME /T");
char cmd[20]="shutdown -s -t ";
char t[5]="0";
print();
int c;
scanf("%d",&c);
getchar();
switch(c)
{
case 1:printf("您想在多少秒后自动关闭计算机?(0~600)\n");scanf("%s",t);
system(strcat(cmd,t));break;
case 2:system("shutdown -p");break;
case 3:system("shutdown -l");break;
case 0:break;
default:printf("Error!\n");
}
system("pause");
exit(0);
} 展开
1个回答
展开全部
cmd的内容被strcat改变了。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int print() {
printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪\n");
printf("╔═══╧╧C语言关机程序 ╧╧═══╗\n");
printf("║※1.实现10分钟内的定时关闭计算机 ║\n");
printf("║※2.立即关闭计算机 ║\n");
printf("║※3.注销计算机 ║\n");
printf("║※0.退出系统 ║\n");
printf("╚═════════════════╝\n");
return 0;
}
//void main(){ 从C99开始,必须使用 int main,这是一个好习惯。
int main()
{
system("title C语言关机程序");//设置cmd窗口标题
system("mode con cols=48 lines=25");//窗口宽度高度
system("color 0B");
system("date /T");
system("TIME /T");
//char cmd[20]="shutdown -s -t ";
char cmd[20];
char t[5]="0";
print();
int c;
scanf("%d",&c);
getchar();
switch(c) {
case 1:
printf("您想在多少秒后自动关闭计算机?(0~600)\n");
scanf("%s",t);
strcpy(cmd,"shutdown -s -t ");//等价于把cmd的内容变成 "shutdown -s -t "
system(strcat(cmd,t));
//strcat并不是简单地把两个字符串拼接,然后返回拼接后的字符串
//它会直接把cmd中原有的内容覆盖掉,因此每次使用之前都必须重置一下。
break;
case 2:
system("shutdown -p");
break;
case 3:
system("shutdown -l");
break;
case 0:
break;
default:
printf("Error!\n");
}
system("pause");
// exit(0);
// 不建议使用在正常结束的位置使用 exit(0) (Just 个人观点)
return 0;
}
追问
谢谢,如果我想关闭计算机可以在cmd中输入shutdown -s -t,要是想注销,输入shutdown -l,可是问题是这个程序运行后,我按照上面的提示输入了想要操作的序号,却没反应了,这是怎么回事?比如我想注销键盘输入 3 ,但是回车后计算机没反应,如果直接在命令提示符里输入这个命令,直接注销了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询