#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{
long int i,j,m,n;
for(j = 1;j < 100000; j++)
{
m = sqrt(i + 100);
n = sqrt(i + 268);
if(m*m==i+100&&n*n==i+268)
{
printf("%d\n",i);
}
}
return 0;
}
首先,根据你给出的代码来看,你这里并不需要这个头文件。
其次,根据我的经验,conio.h 这个头文件中的函数可以控制输入时不在屏幕回显出来,通常可以用作密码输入处理。但是这个库不是标准库中的,因此,你需要自己安装。
网上有很多地方说,可以直接在网上下载到 conio.h 文件,之后你把它放在你的 /usr/include 目录下即可,但是这种做法可能并不一定适用于所有平台。centos 上好像可以直接安装 libconio (用yum),然后相对稳健的方法就是,下载比较完整的安装包,地址为https://libconio.soft112.com/download.html ,之后执行 ./configure && make && make install这一系列命令,之后就可以用了。注意编译时需要指定链接参数 -lconio
。
利用它的库可以做到输入密码不回显,但是并不推荐这种做法,我之前就遇到过,引入这个库之后,程序 Ctrl + C 不能退出的情况。没有深究,但是移除相关使用,确实不会出现这种情况。如果单纯是想做到输入密码屏幕不会先,可以调用shell:
system("stty -echo");——不显示
system("stty echo");——显示
将你程序中控制输入的部分,包裹在这两个语句之间即可达到输入密码不回显的目的。shell中的一些密码验证好像也是这种方式。