c语言留屏
❶ 如何在c语言运行程序时让屏幕停在用户屏幕
有两种方法可以实现。
1 在程序需要暂停的位置增加读操作代码。
对于windows下支持getch函数的情内况,可以使用
getch();
调用,该函容数会等待终端输入,直到有输入才会退出函数继续执行。
如果不支持getch,则可以先清空输入缓冲,
fflush(stdin);
然后调用读操作函数,如
getchar();
或
scanf("%c",&a);
等,实现暂停效果。
2 通过调用系统命令pause,实现暂停效果。
system("pause");
的调用,相当于执行dos命令pause,可以实现将输出暂停。
要调用system函数,需要引用头文件stdlib.h。
❷ C语言中,还有汇编语言中,如何让生成的可执行文件屏幕暂留
在return的前面加一个
system("PAUSE");
就可以了~~
可能需要用到头文件stdlib.h
❸ c语言屏幕输出问题
先输出一屏幕,然后加一个getch();停顿一下,然后再输出另一屏幕
❹ C语言中如何使结果停留在屏幕上
在程序结尾处加上键盘输入函数
getch();
但是要在retun
之前
加
上
就可以停留
住
屏幕了
❺ c语言中如何只清屏后半部分保留前半部分
问题太多了,我只作了第一个,这个程序可以实现加减乘除指数运算,支持所有双精度型数据~~~~~~好累~~~
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<math.h>
#define stacksize 100
//---字符栈的基本操作----------------------------------
typedef char datatype1;
typedef struct //定义字符栈,用数组表示
{
datatype1 data[stacksize];
int top;
} seqstack1;
void initstack1(seqstack1 *s)//置空栈
{
s->top = -1;
}
int stackempty1(seqstack1 *s)//判栈空
{
return s->top == -1;
}
int stackfull1(seqstack1 *s)//判栈满
{
return s->top == stacksize-1;
}
void push1(seqstack1 *s, char x)//进栈
{
if(stackfull1(s)) return ;
++s->top;
s->data[s->top] =x;
}
char pop1(seqstack1 *s)//退栈
{
if(stackempty1(s)) return NULL;
s->top--;
return s->data[s->top+1];
}
char stacktop1(seqstack1 *s)//访问栈顶元素
{
if(stackempty1(s)) return NULL;
return s->data[s->top];
}
//---整数栈的基本操作----------------------
typedef double datatype2;
typedef struct//定义数栈,用数组表示
{
datatype2 data[stacksize];
int top;
}seqstack2;
void initstack2(seqstack2 *s)//置空栈
{
s->top = -1;
}
int stackempty2(seqstack2 *s)//判栈空
{
return s->top == -1;
}
int stackfull2(seqstack2 *s)//判栈满
{
return s->top == stacksize-1;
}
void push2(seqstack2 *s, double x)//进栈
{
if(stackfull2(s)) return ;
++s->top;
s->data[s->top] =x;
}
double pop2(seqstack2 *s)//退栈
{
if(stackempty2(s)) return NULL;
s->top--;
return s->data[s->top+1];
}
double stacktop2(seqstack2 *s)//访问栈顶元素
{
if(stackempty2(s)) return NULL;
return s->data[s->top];
}
char proceed(char a,char b)//判断运算符的优先级,a为栈内运算符,b为栈外运算符
{
int i,j;
char c[9][9]=
,
,
,
,
,
,
,
,
};
for(i=1;i<7;i++)if(c[i][0]==a)break;
for(j=1;j<7;j++)if(c[0][j]==b)break;
return c[i][j];
}
double transform(char *s,int *i)//字符型数据转化为双精度型数据
{
int j=0,n;
double a[10],sum1=0,sum2=0;
for(;isdigit(s[*i]);(*i)++)
a[j++]=s[*i]-'0';
n=j;
for(j=0;j<n;j++)
sum1=(sum1+a[j])*10;
sum1=sum1/10;
if(s[(*i)]=='.')
{
*i=*i+1;
for(j=0;isdigit(s[*i]);(*i)++)
a[j++]=s[*i]-'0';
for(j=j-1;j>=0;j--)
sum2=(sum2+a[j])/10;
}
return sum1+sum2;
}
double operate(double a,char r,double b)//运算函数
{
switch(r)
{
case'+':return a+b;break;
case'-':return a-b;break;
case'*':return a*b;break;
case'/':return a/b;break;
case'^':return pow(a,b);break;
default:printf("error");
};
}
double evalexpres(char *s)//求表达式值的函数
{
char ch,r;
int i=0;
double a,b,num;
seqstack1 *stack1;
seqstack2 *stack2;
stack1=(seqstack1*)malloc(sizeof(seqstack1));//创建字符栈
stack2=(seqstack2*)malloc(sizeof(seqstack2));//创建数栈
initstack1(stack1);
push1(stack1,'#');
initstack2(stack2);
ch=s[i];
while(ch!='#'||stacktop1(stack1)!='#')//扫描表达式
{
if(isdigit(ch))//如果是‘0’~‘9’,转换为整形,进数栈
{
num=transform(s,&i);
push2(stack2,num);
ch=s[i];
}
else
{
switch (proceed(stacktop1(stack1),ch))
{
case'<'://栈内符号优先级低,栈外符号进栈
push1(stack1,ch);
ch=s[++i];
break;
case'='://脱括号并接收下一个字符。
pop1(stack1);
ch=s[++i];
break;
case'>'://退栈并将运算结果入数栈。
r=pop1(stack1);
b=pop2(stack2);
a=pop2(stack2);
printf("计算步骤:\n%.3f%c%.3f=%.3f\n",a,r,b,operate(a,r,b));//输出运算步骤
push2(stack2,operate(a,r,b));
break;
case'x': printf("原表达式%s有误,请检查:\n",s);break;
}//switch
}//else
}//while
return stacktop2(stack2);
}
main()
{
double num;
char s[stacksize];
printf("\t\t\t| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|\n");
printf("\t\t\t|^_^这是我的计算器^_^|\n");
printf("\t\t\t|____________________|\n");
printf("\t\t支持加,减,乘,除,指数及括号运算.\n");
printf("\t\t数据可以为双精度类型的任意数\n");
printf("\t\t请输入表达式,并以#结束:\n");
scanf("%s",s);
while(s[strlen(s)-1]!='#')
{
printf("输入有误!请重新输入:\n");
scanf("%s",s);
}
num=evalexpres(s);
printf("%s=%.3f\n",s,num);
getchar();
}
如果对您有帮助,请记得点赞为满意答案,谢谢!祝您生活愉快!
❻ C语言中怎样实现换屏
换屏这些
可以使用触发型原理
可以使用If
(
)
语句
即可设置点选方式
换屏
还有时间倒计时的方式
换屏
方法比较多
❼ c语言,保存屏幕内容
可以在输出到屏幕前将需要保存的内容保存到其它文件中。
*********************************************
请写出你的程序
❽ c语言运行结果如何截屏
按Print Screen可以截全屏窗口的话用ALT+Print Screen当然你还可以使用QQ的截屏,那个挺好用的!
❾ 如何让C语言程序运行后留在屏幕上
// Win2000/XP下:
#include <stdlib.h>
....
system("pause");
---------------
// Win98/ME/2000/XP下:
#include <conio.h>
....
printf("Press any key to exit...");
getch();
❿ getchar();在c语言中有留屏的意思吗
当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户版按回车为止(回车字符也放权在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1。
我们就是利用getchar的多读取一个字符但并不处理,实现留屏。