C语言清屏指令,检错没有错误,但是输入!无反应,如何更改可以清屏???

如题所述

在csdn论坛里看到这样一个问题:如何在c语言命令提示下清除屏幕?
感兴趣,随查之。
有解:
#include<stdio.h>
#include<dos.h>
void main()
{
int i;
scanf("%d",&i);
system("cls"); //清屏函数。
}
还有很多相似的问题,比如说:
还有人问:如何才能只清除一行,或是指定行?
答曰:??&*((不知道)
有人说用gotoxy可以吧。

后来又有人问:tc下的gotoxy命令为什么在vc下用不了?
答曰: gotoxy在tc的<conio.h>库中,vc++6根本不支持这个库。
还有其他的一些问到c语言的清屏方法。答案也有很多,感兴趣的可以自己搜。关键字:c语言 清屏。
看到上边那个gotoxy我觉得有点意思,因为在c语言里有那个goto语句。不过是不一样的。
于是搜呀搜呀~找到了这样的一个代码(关键部分):
#include <stdio.h>
#include <windows.h>
void GoToXY(int x, int y);
void main()
{
int x,y;
printf("请输入光标位置(x,y)用逗号隔开/n");
scanf("%d,%d",&x,&y);
GoToXY(x,y);
printf("x=%d,y=%d",x,y);
scanf("%d",&x);
}
void GoToXY(int x, int y)
{
COORD pos = {x,y}; //设置光标位置
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄
SetConsoleCursorPosition(hOut, pos); //两个参数分别是指定哪个窗体,什么位置?
}

这是经过我改编的代码,这样就可以在窗体内让光标随心而动了。
那个如何清除指定的行的字符呢?
那就得用“覆盖法”了,就是让光标到那一行的行头,让后用一个循环输入指定次数的空格就行了。
总的体会 很灵活!追问

我有一点点的看不懂

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-28
用C语言自带的库函数 clrscr(),这个有用的追答

头文件是 conio.h

追问

这个怎么用…我不会

追答

用它代替system这一行,这个函数没有参数

第2个回答  2018-03-28
输入样例和执行效果截图追问

输入清屏直接结束了

追答

你的scanf里要求输入的是数字字符数字的格式,你就输入一个!,直接不满足while循环的条件,淡然直接退出

追问

那怎么改哦,如果改成数字的话就自动作为算式了诶

追答#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void clear()
{
system("cls");
}
int main()
{
void clrscr(void);
int a,b;
char fu,s[100];

while(gets(s))
{
if(strlen(s))
{
if(strcmp(s,"!"))
sscanf(s,"%d%c%d", &a, &fu, &b);
else
fu='!';
}
else
{
break;
}
switch(fu)
{
case '-':printf("%d - %d = %d\t\n", a, b, a-b);break;
case '+':printf("%d + %d = %d\t\n", a, b, a+b);break;
case '*':printf("%d x %d = %d\t\n", a, b, a*b);break;
case '/':printf("%d / %d = %d\t\n", a, b, a/b);break;
case '!':clear();break;
default : ;

}
}
return 0;
}

追问

大哥

相似回答