当前位置:首页 » 编程语言 » c语言查找指定后缀
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言查找指定后缀

发布时间: 2023-08-31 09:43:38

Ⅰ 在c语言中,头文件的扩展名是

头文件是扩展名为.h的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件,程序员编写的头文件和编译器自带的头文件。

在程序中要使用头文件,需要使用 C 预处理指令#include来引用它。前面我们已经看过stdio.h头文件,它是编译器自带的头文件。

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。

在C语言中,头文件是程序各部分之间保证信息一致性的桥梁,是连接程序对象定义和使用的纽带。

(1)c语言查找指定后缀扩展阅读

1、如果一个头文件被引用两次,编译器会处理两次头文件的内容,这将产生错误。为了防止这种情况,标准的做法是把文件的整个内容放在条件编译语句中。

2、有时需要从多个不同的头文件中选择一个引用到程序中。例如,需要指定在不同的操作系统上使用的配置参数。

Ⅱ C语言中的obj

obj文件是目标文件,一般是程序编译后的二进制文件,在通过链接器和资源文件链接就成exe文件了。
OBJ只给出了程序的相对地址,而EXE是绝对地址。
OBJ文件不支持有孔的多边形面。
举个例子说明一下:
选择Maya的创建多边形工具(Polygons -> Create Polyon Tool),在视图中画一个四边形,不要按回车,按Ctrl在四边形中间点一下,可以继续在四边形中挖一个洞。把这个有孔的多边形存成OBJ格式,在导入Maya时,会发现多边形少了一块。如果你把这也看成错误,现在至少你已经知道错误的原因了,就是OBJ文件不支持有孔的多边形面。
OBJ文件 -- 实际问题:
现在来讨论一点比较实际的问题吧,就是一旦你遇到了一个出错的OBJ文件,倒底该怎么办?
当你打开OBJ文件后,往往会看到有几万行的代码,你恐怕还没本事情一眼看出错误所在行,除非程序的错误信息中已经告诉你错误行。如果你不知道错误在哪里,可以用排除法,弄清楚肯定正确的代码范围,通过缩减错误代码范围定位错误。例如,你先新建一个空的OBJ文件,把有错的OBJ文件代码粘贴一半过来,然后把这个只有一半代码的新OBJ文件导入Maya。如果这时没有错误信息,说明错误行是在另一半代码中,可以从另一半代码中再粘贴一部分代码试试看;如果这时出现错误,说明错误行就在粘贴的代码中,可以把粘贴过来的代码删去一部分再试试看。就这样,逐步缩减范围直到找到错误行为止。
这种方法虽然很麻烦,不过颇为有效。如果你不会编程,又遇到非常紧急的情况,这种方法还是值得一试的。
OBJ文件 -- 细节:
掌握了这么多差不多也够用了,不过由于网上详细讲解OBJ文件的中文文档很少,我还是再讲一些例子,给大家提供多一点的信息吧。
简单的OBJ格式写法。
# Simple Wavefront file
v 0.0 0.0 0.0
v 0.0 1.0 0.0
v 1.0 0.0 0.0
f 1 2 3
面可以使用负值索引,有时用负值索引描述面更为简便。
"f -4 -3 -2 -1"这句索引值"-3"表示从"f"这行往上数第3个顶点,就是"v -0.500000 0.000000 -0.800000",其它的索引值以此类推。 因此与这一行等效的正值索引写法为:"f 1 2 3 4"
v -0.500000 0.000000 0.400000
v -0.500000 0.000000 -0.800000
v -0.500000 1.000000 -0.800000
v -0.500000 1.000000 0.400000
f -4 -3 -2 -1
OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。关键字"mtllib"即材质库的意思。
材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB(红绿蓝)的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。
"usemtl"指定了材质之后,以后的面都是使用这一材质,直到遇到下一个"usemtl"来指定新的材质。

Ⅲ 用C语言编出遍历出某个目录以及其子目录下所有以TXT为扩展名的文本文件

#include"StdAfx.h"
#include"FindFile.h"

//这里只是测试函数
//一般我们遍历文件都是有目的同这个写类似病毒一些东西
voidTest(WIN32_FIND_DATA*fd)
{
MessageBox(0,fd->cFileName,0,0);
}

BOOLFindFile(char*pFileName,char*FindFileType)
{
WIN32_FIND_DATAfd;
HANDLEhFind;
charType[10]={0};
sprintf(Type,".%s",FindFileType);
//HANDLEhFindType;//查找对应文件类型
charFileName[260]={0};

sprintf(FileName,"%s\*.*",pFileName);
ZeroMemory(&fd,sizeof(fd));

if(0==strlen(FileName))
{
MessageBox(0,"文件名不能为空",0,0);
returnFALSE;
}
else
{
hFind=FindFirstFile(FileName,&fd);
if(INVALID_HANDLE_VALUE==hFind)
{
returnFALSE;
}
else
{
do
{
//查找文件名字中有没与.文件后缀注意要加点因为点在文件名字是特殊符号
//一般是不可以用的。但可以用特殊方法来添加。
//U盘免疫就是用这中方法来来建立一个不能用普通方法删除autorun.inf的文件夹
if(strstr(fd.cFileName,Type))
{
Test(&fd);
}
else
{
//当该文档是文件时候进行下列操作
if(fd.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
{
//除掉.表示当前目录和..上一个目录这个在dos中可以看到
if(strcmp(fd.cFileName,".")!=0&&strcmp(fd.cFileName,"..")!=0)
{
charTemp[256]={0};
sprintf(Temp,"%s\%s",pFileName,fd.cFileName);
FindFile(Temp,FindFileType);

}

}
}

//继续查找下一个文件
}while(FindNextFile(hFind,&fd));
}
}
re