C语言(VC++6.0)获取cpu编码
答案:2 悬赏:0 手机版
解决时间 2021-11-08 09:32
- 提问者网友:星軌
- 2021-11-08 02:12
C语言(VC++6.0)获取cpu编码
最佳答案
- 五星知识达人网友:不甚了了
- 2021-11-08 03:11
1 要获取CPU编码可以使用dos命令wmic cpu get ProcessorId。
2 要在C语言中执行dos命令,一般使用system("wmic cpu get ProcessorId");
3 由于获取到的cpu编码是打印在命令行中的,要获取结果用system就无法实现了。这时可以用windows提供的_popen函数。该函数的功能为,执行一段dos命令,并将程序运行结果(原本的dos打印)保存在内存中,可以通过文件方式读取。
于是,代码如下:
#include
#include
int main( void )
{
char psBuffer[128];
FILE *pPipe;
if( (pPipe = _popen( "wmic cpu get ProcessorId", "rt" )) == NULL )
exit( 1 );//执行失败,退出程序。
while(fgets(psBuffer, 128, pPipe))//读取结果,并输出。
{
printf(psBuffer);
}
_pclose( pPipe );
return 0;
}
2 要在C语言中执行dos命令,一般使用system("wmic cpu get ProcessorId");
3 由于获取到的cpu编码是打印在命令行中的,要获取结果用system就无法实现了。这时可以用windows提供的_popen函数。该函数的功能为,执行一段dos命令,并将程序运行结果(原本的dos打印)保存在内存中,可以通过文件方式读取。
于是,代码如下:
#include
#include
int main( void )
{
char psBuffer[128];
FILE *pPipe;
if( (pPipe = _popen( "wmic cpu get ProcessorId", "rt" )) == NULL )
exit( 1 );//执行失败,退出程序。
while(fgets(psBuffer, 128, pPipe))//读取结果,并输出。
{
printf(psBuffer);
}
_pclose( pPipe );
return 0;
}
全部回答
- 1楼网友:低血压的长颈鹿
- 2021-11-08 04:08
有个办法是先写入到文件,再从文件读取
#include
#include
void main()
{
system("wmic cpu get ProcessorId > 1.txt");
FILE *pf;
pf=fopen("1.txt","r");
if(!pf)
{
printf("get processid fail!");
}
else
{
char *ids=new char[20];
int index=0;
int c;
fseek(pf,42,SEEK_SET);
while((c=getc(pf))!=EOF)
if(c>=48)//wmic cpu get ProcessorId会向文件中插入很多0,必须忽略
*(ids+index++)=c;
*(ids+index)=0;
printf("%s\n",ids);
fclose(pf);
DeleteFile("1.txt");
}
}追问的确不错,还有没有跟优的算法呢追答暂时没想到
#include
#include
void main()
{
system("wmic cpu get ProcessorId > 1.txt");
FILE *pf;
pf=fopen("1.txt","r");
if(!pf)
{
printf("get processid fail!");
}
else
{
char *ids=new char[20];
int index=0;
int c;
fseek(pf,42,SEEK_SET);
while((c=getc(pf))!=EOF)
if(c>=48)//wmic cpu get ProcessorId会向文件中插入很多0,必须忽略
*(ids+index++)=c;
*(ids+index)=0;
printf("%s\n",ids);
fclose(pf);
DeleteFile("1.txt");
}
}追问的确不错,还有没有跟优的算法呢追答暂时没想到
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯