永发信息网

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;
}
全部回答
  • 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");
}
}追问的确不错,还有没有跟优的算法呢追答暂时没想到
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯