scanf奇特的用法
来源:百度知道 编辑:UC知道 时间:2024/06/23 04:10:21
#define MAXSIZE 100
#include<stdio.h>
#include<stdlib.h>
typedef struct stack{
int data[MAXSIZE];
int top;
}sta;
void init(sta *s){
s->top=-1;
}
int empty(sta *s){
if(s->top==-1)
return 1;
else
return 0;
}
void push(sta *s,int i){
if(s->top==MAXSIZE-1){
printf("Stack is full\n");
return;
}
s->top++;
s->data[s->top]=i;
}
int pop(sta *s){
if(empty(s)){
printf("stack is empty");
return -1;
}
return(s->data[s->top--]);
}
void trans(int num)
{
sta s;
int k,m;m=num;
init(&s);
while(num){
k=num%16;
push(&s,k);
num=num/16;
}<
#include<stdio.h>
#include<stdlib.h>
typedef struct stack{
int data[MAXSIZE];
int top;
}sta;
void init(sta *s){
s->top=-1;
}
int empty(sta *s){
if(s->top==-1)
return 1;
else
return 0;
}
void push(sta *s,int i){
if(s->top==MAXSIZE-1){
printf("Stack is full\n");
return;
}
s->top++;
s->data[s->top]=i;
}
int pop(sta *s){
if(empty(s)){
printf("stack is empty");
return -1;
}
return(s->data[s->top--]);
}
void trans(int num)
{
sta s;
int k,m;m=num;
init(&s);
while(num){
k=num%16;
push(&s,k);
num=num/16;
}<
while 循环语句反复循环,
读入新数据,读到一个就循环一次,等待再读,如果输入流暂存器里有数值,它就去来用。
连续输入几个数,按一次回车,这几个个数全在 暂存器 里。
如果不想让程序取用 暂存器 里后几个数值,要用 fflush 清除:
scanf("%d",&num);
while(num!=-1){
trans(num);
fflush(stdin); // 清除
scanf("%d",&num);printf("tushaopin");
}
while(num!=-1){
trans(num);
scanf("%d",&num);printf("tushaopin");
}
这个循环里不是有输入吗?
也就是只要你输入正确,可以循环输入