當前位置:首頁 » 編程語言 » 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