webForumDet fria alternativet

argv och argc

5 svar · 260 visningar · startad av stenmark

stenmarkMedlem sedan apr. 200318 inlägg
#1

Jag har några frågor angående argumenten char *argv och int argc, som main tar.

Om jag tex vill ha filer som indata till programmet så går det ju bra. Men om jag vill använda wildcards som tex * när jag talar om vilka filer som programmet ska använda, hur gör jag då?

tex.
testprogram *.txt
ska ta och bearbeta alla filer som har filändelsen txt. Det går ju inte att öppna filen *.txt i programmet, eftersom att programmet då försöker öppna en fil som heter just *.txt och det vill jag ju inte. Jag vill ju öppan alla txt filer.

Hoppas någon förstår problemet. Hur göra?

PhorpherMedlem sedan feb. 20002 300 inlägg
#2

Du får ju göra en liten "parser" som kollar dina inargument. Hittar du en asterisk (*) så får du läsa igenom arbetskatalogen och hämta alla filer som har en txt-extension och sen för varje fil som du hittar göra det du ska med den. :)

stenmarkMedlem sedan apr. 200318 inlägg
#3

Jo, det har jag förstått. Men hur gör man för att få ett c++ program att öppna alla filer med txt extension. Man kan ju bara koppla en utström till EN fil utgången. Hur gör man då för att koppla den till alla i en viss katalog?

GunnarDMedlem sedan juni 20014 290 inlägg
#4

Du behöver inte öppna alla filer med en gång (kanske inte går och onödigt slöseri med resurser).

Det enklaste är att bygga upp en lista med filnamn och sedan öppna resp. fil i en loop:

"inge riktig kod"
För varje fil i listan filer {
öppna fil
bearbeta fil
stäng fil
}

stenmarkMedlem sedan apr. 200318 inlägg
#5

Ska försöka omformulera mig...allt det som ni sagt nu vet jag redan.
Vad jag inte vet hur jag får tag på en lista med alla filnamn i en viss katalog.

GunnarDMedlem sedan juni 20014 290 inlägg
#6

I standard C finns funktionerna:

opendir()
readdir()
closedir()

Du borde kunna använda dom, vet inte om det finns något trevligt C++ objekt som gör samma sak.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)