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
C++, CreateDirectory
-
- nováček
- Příspěvky: 1
- Registrován: září 11
- Pohlaví:
- Stav:
Offline
Re: C++, CreateDirectory
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?
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...
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)
(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ů