代码来源:Open Cascade DataExchange DXF - opencascade - 博客园 (cnblogs.com)
/*--------------------------------------------------
* Header.C
*读取DXF文件中HEADER段中DXF文件版本号的小程序。
* eryar@163.com 02-05-08 18:55
*----------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STRLEN 30
int main(int argc, char *argv[])
{
int code; /*存储组码*/
char codevalue[STRLEN]; /*存储组码对应的值*/
FILE *dxf; /*文件指针*/
char filename[STRLEN]; /*文件名*/
char suffix[6] = ".dxf"; /*只输入文件名打开DXF文件,不用输后缀.*/
printf("请输入文件名:");
gets(filename);
strcat(filename, suffix);
dxf = fopen(filename, "r"); /*打开文件进行读操作*/
if (!dxf) {
printf("打开文件出错!/n按任意键退出...");
getchar();
exit(0);
}
else {
printf("文件已经打开./n正在读取.../n");
}
while (!feof(dxf)) {
fscanf(dxf, "%d", &code);
fscanf(dxf, "%s", codevalue);
if (code == 2 && strcmp(codevalue, "HEADER") == 0) {
fscanf(dxf, "%d", &code);
fscanf(dxf, "%s", codevalue);
if (strcmp(codevalue, "$ACADVER") == 0) {
fscanf(dxf, "%d", &code);
fscanf(dxf, "%s", codevalue);
if (strcmp(codevalue, "AC1006") == 0) {
printf("AutoCAD版本为R10.");
}
else
if (strcmp(codevalue, "AC1009") == 0) {
printf("AutoCAD版本为R11和R12.");
}
else
if (strcmp(codevalue, "AC1012") == 0) {
printf("AutoCAD版本为R13.");
}
else
if (strcmp(codevalue, "AC1014") == 0) {
printf("AutoCAD版本为R14.");
}
else
if (strcmp(codevalue, "AC1015") == 0) {
printf("AutoCAD版本为AutoCAD 2000.");
}
else
if (strcmp(codevalue, "AC1018") == 0) {
printf("AutoCAD版本为AutoCAD 2004.");
}
else {
printf("不能识别的AutoCAD版本!");
break;
}
}
}
}
fclose(dxf); /*关闭文件*/
printf("/n文件已经关闭.");
printf("/nPress any key to halt...");
getchar();
}
只需要把你的dxf文件和cpp文件放在同一目录下即可运行