C++, CreateDirectory

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
DavidXfire
nováček
Příspěvky: 1
Registrován: 10 zář 2011 12:52

C++, CreateDirectory

Příspěvek od DavidXfire »

Ahoj, nevíte prosím jestli se dá v cyklu měnit string?
Konkrétně mám na mysli toto:

#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
int z=0;

do
{

string y;

cin >> y;

LPSECURITY_ATTRIBUTES attr;
attr = NULL;

CreateDirectory(y.c_str(), attr);

cout << "\nAdresar vytvoren!\n";
z++;
}
while( z < 20);

cin.get();
return 0;
}

Tohle vytvoří 20 adresářu, ale pokaždé se musí zadávat jméno, zkoušel jsem:
int x=1:
string y;
y = x;

x++

Ovšem to vytvořilo jen adresáře !@#$%^&*()ABCDEF...... Z1234567890, a dál už to nejelo, i pokud jsem dal z < 200 a víc, neví někdo co s tim? Děkuji David
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: C++, CreateDirectory

Příspěvek od faraon »

Není mi jasné co ten program má přesně dělat a nedělá. Nepomohlo by vyhodit deklaraci těch proměnných ven z těla cyklu?

Kód: Vybrat vše

#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
   int z=0;
   string y;
   LPSECURITY_ATTRIBUTES attr;
 
   do
   {
      cin >> y;
      attr = NULL;
      CreateDirectory(y.c_str(), attr);
      cout << "\nAdresar vytvoren!\n";
      z++;
   } 
   while( z < 20);

   cin.get();
   return 0;
}
String se samozřejmě měnit dá, je to běžná proměnná. Akorát bacha na to že Windows je (na rozdíl od unixových systémů) case insensitive, takže adresáře "A" a "a" jsou pro něj jeden a tentýž, nikoliv dva různé!
Navíc některé znaky (zejména * a ?) by se ve jménech souborů a adresářů neměly vyskytovat, sice takové jde vytvořit, ale některé programy s nimi nedokáží pracovat. Možná by se vyplatilo udělat si pole povolených znaků a z nich brát postupně jeden po druhém...
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Odpovědět

Zpět na „Programování a tvorba webu“