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

DavidXfire
nováček
Příspěvky: 1
Registrován: září 11
Pohlaví: Muž
Stav:
Offline

C++, CreateDirectory

Příspěvekod DavidXfire » 10 zář 2011 12:59

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

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: C++, CreateDirectory

Příspěvekod faraon » 10 zář 2011 21:17

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)


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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů