新手刚开始学编程。我希望能实现1到20的计数功能,每一个数延迟一秒,为啥gcc直接卡住,不显示任何东西,大神求解惑。
不是应该是Thread类调用吗。Thread.sleep(1000);
1.sleep的使用没有错,是正确的;
2.
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
int main(int argc,char **argv)
{
while(1)
{
int i;
for(i=1;i<=20;++i)
{
printf("i=%d\n",i);
sleep(1);
}
break; //加上break,20次计数结束后,就终止进程,不然会出现死循环;
}
return 0;
}
3.至于你说的会卡在gcc???我没有明白,gcc是一个编译器,是对你编写程序进行一个语法检查,判断是否有语法错误;它编译成功后会生成一个
可执行文件,你要执行才能得到结果的;具体步骤如下:
(1)gcc 文件名.c ---->会默认生成一个a.out可执行文件
(2)./a.out ---->执行生成的可执行文件,便可看到想要的结果;
若有帮助,还望采纳,谢谢^_^ ^_^ ^_^ ^_^
首先卡住因为你的while(1)死循环了没有退出条件,把while循环去掉即可。
其次没有输出是因为有个输出缓冲的存在,输出缓冲一般是行缓冲,也就是在遇到换行(\n)之间都不会输出任何数据,直到遇到换行或者用fflush刷缓冲区或者程序退出才会输出缓冲区的数据。
参考代码:
#include <stdio.h>
int main(void)
{
int i;
for(i=1;i<=20;i++)
{
printf("%d ",i);
fflush(stdout);//将缓冲区数据刷新到屏幕上
sleep(1);
}
putchar('\n');//换行
return 0;
}
另外不建议随便暴露自己的个人信息。。