第1个回答 2011-04-29
利用死循环,就是利用循环控制语句,不断检查输入情况,还是我写个简单的程序给你看看吧,这里我用while循环举例
#include<stdio.h>
int main(void)
{
int i;
while(1)
{
printf("input i:",i);
scanf("%d",&i);
if(i==1)
printf("我很聪明\n");
else continue;
}
}
就是这样的,只要你输入i的值不是1,程序就一直循环,每次循环都判断新输入的是不是1,如果是就打印 我很聪明 并且继续循环,再次输入检查输入,一直这样下去,这就实现了程序在后台检查输入的情况,等待键盘输入
追问声明一下:我已经学了两年的C语言了 ,你试一下你这个程序在后台还能不能接收键盘输入把!
追答喔,没在意写错,写的是有问题,但是我只是想说明什么叫后台输入控制程序,其实我这个程序还没写完整,因为后面还要很多 条件限制的,我只是说明下
第2个回答 2011-04-30
使用int kbhit(void)
-------------------
函数名:kbhit()(VC++6.0下为_kbhit())
功 能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
用 法:int kbhit(void);
包含头文件: include <conio.h>
------------------
检测到之后再用getch/getche等等函数取得按键,用getchar等会等到按回车再返回...
当然这只是命令行下的函数,而且linux下没有conio.h,需要其它等效代码替换,你可以搜下Net
-------------------
#include <conio.h>
int main()
{
int i,c;
char p[4]={ '|', '/', '-', '\\'};
for(i=0;;i++)
{
if(kbhit()==0){//没有按键
int n;
cprintf("\r%u %n",i,&n);
while(n++<20)putch('.');
cprintf(" %c",p[i/400%4]);
}else{//有按键
c=getch();
cprintf("\r ");
cprintf("\r%u>you press '%c' key, code %u.\n", i, (c==13)?10:c, c);
}
}
}
第3个回答 2011-05-04
#include<stdio.h>
#include<stdlib.h>
#define SIZE 4
struct student
{
char s_num[10];
char s_name[20];
char sex[2];
int age;
}stu[SIZE];
void input()
{
int i;
for(i=0;i<SIZE;i++)
{
printf("请输入第%d个学生的数据内容:学号,姓名,性别(男:M,女F),年龄\n",i+1);
scanf("%s%s%s%d",stu[i].s_num,stu[i].s_name,stu[i].sex,&stu[i].age);
}
}
void save()
{
int i;
FILE *fp;
if((fp=(fopen("c:\\stu_list.txt","wb")))==NULL)
{
printf("can not open file:stu_list!\n");
exit(0);
}
for(i=0;i<SIZE;i++)
{
if((fwrite(&stu[i],sizeof(struct student),1,fp))!=1)
{
printf("write error!\n");
fclose(fp);
exit(0);
}
}
fclose(fp);
}
void main()
{
input();
save();
}
关键错误在于:fclose(0);
应该改为 fclose(fp);
另外,团IDC网上有许多产品团购,便宜有口碑