Autor Zpráva
BlackMartin
Profil
Dobrý den.
Předem se omlouvám že tento dotaz strkám do fóra o webovém programování, ale myslím si že tady dostanu odpověď.
Mám tento zdroják :
// start.cpp
// Aplikaci napsal BlackMartin
#include <iostream>
using namespace std;

int main()
{
cout << "\007DataSoft\n\n\n";
cout << "Zadejte jmeno:________ \b\b\b\b\b\b\b\b\b";
long name;
cin >> name;

cout << "\nZadejte pristupovy kod:________ \b\b\b\b\b\b\b\b\b";
long code;
cin >> code;

cout << "\aZadali jste jmeno:" << name << " a kod" << code << "\n\n\n";
cout << "\aJmeno a kod byl overen ! Pokracujte podle Planu Z3!\n"; 
cin.get();
cin.get();
return 0;
}


Pokaždé co aplikaci zkompiluji tak napíši jen jméno odentruji a pak už se mi app zavře.
Kompiluji v Visual Studio C++ 2008 Express
Nevíte kde je chyba ?
Nox
Profil
Sem na toto lama a Cčko sem neviděl ani nepamatuju, ale pokud chceš aby to počkalo, nemělo by tam být něco jako system("pause") ?
Možná je to blbost, ale risknu to;)
Měsíček
Profil
vícekrát dej cin.get(); a nebo to uzavři do smyčky while ;) nebo pomocí příkazu goto je mnoho možností.
BlackMartin
Profil
Tak jsem to upravil na
// start.cpp
// Aplikaci napsal BlackMartin
#include <iostream>
using namespace std;

int main()
{
cout << "\007DataSoft\n\n\n";
cout << "Zadejte jmeno:________ \b\b\b\b\b\b\b\b\b";
long name;
cin >> name;
cin.get();

cout << "\nZadejte pristupovy kod:________ \b\b\b\b\b\b\b\b\b";
long code;
cin >> code;
cin.get();

cout << "\aZadali jste jmeno:" << name << " a kod" << code << "\n\n\n";
cout << "\aJmeno a kod byl overen ! Pokracujte podle Planu Z3!\n"; 
cin.get();
cin.get();
cin.get();
cin.get();
return 0;
}


Ale stejně to nefunguje. Viz. http://martindeveloper.ic.cz/files/Secret.exe
BTW: Nox Mohl by jsi upřesnit ten příkaz ?
Měsíček
Profil
asi myslel

system("pause");
Měsíček
Profil
, který udělá na chvíli stopku něco jako

" Pokračujte po kliknutí .. "
BlackMartin
Profil
Tak jsem to tam hodil a viz. http://martindeveloper.ic.cz/files/Secret2.exe
Když tam třeba napíšete ahoj tak už to nepustí kničemu dalšímu.
Měsíček
Profil
Mě ten program nejde otevřít, asi špatně kompiluješ pro architekturu :)
BlackMartin
Profil
Mám tam Win32
Měsíček
Profil
to nehraje roli ... dej to jako konzoli :)
BlackMartin
Profil
Nešlo by trošku upřesnit kde to mám najít ?
V C++ nejsem žádný odborník ...
Měsíček
Profil
Tohle není otázka C++, ale otázka tvého programu Visual Studio C++ 2008 Express, kterej zduše nesnáším spíše si stáhni nějáký jiný jednodušší a zadarmo například stačí ti poznámkový blok a MinGW kde zadáš jen příkaz a samo se ti to zkompiluje, více se naučíš a půjde to jednodušší cestou.

Jdi na builder.cz tam to napiš do sekce c/c++ .. tam ti spíše poradí.
BlackMartin
Profil
OK Děkuju.
Mimochodem Visual Studio C++ 2008 Express je zdarma ;-)
Měsíček
Profil
Je, ale s minimem funkcí a je to hodně ostříhaná verze.
Mike8748
Profil
cout << "Zadejte jmeno:________ \b\b\b\b\b\b\b\b\b";
long name;
cin >> name;


ses si jistej ze chces jmeno jako cislo?
BlackMartin
Profil
aha :)
A jaký datový typ bych měl zvolit pro to jméno ? Popřípadně kdybych chtěl aby to jméno se skládalo z písmen i číslic.
Měsíček
Profil
přidat knihovnu a normálně string nebo char ..
los
Profil *
BlackMartin
Z prúdu bajtov čítaš číslo, takže pri nesprávnom vstupe sa ten stream dostane do chybového stavu a každý ďalší pokus o čítanie z neho zlyhá. Ak by si použil std::string, tak sa biele znaky považujú za oddeľovač, s čím by si mal zrejme problém.

Na čítanie po riadkoch je lepšie použiť funkciu std::getline. Na to, aby si mohol pracovať so std::string, musíš inkludovať hlavičkový súbor string. Príklady a dokumentácia - viď Google alebo MSDN.

Měsíček
> to nehraje roli ... dej to jako konzoli :)
Z otázky je jasné, že to ako konzolovú aplikáciu už má.

> Tohle není otázka C++, ale otázka tvého programu Visual Studio C++ 2008 Express
Nezmysel.

> například stačí ti poznámkový blok a ...
No amen-tma.
Měsíček
Profil
> Tohle není otázka C++, ale otázka tvého programu Visual Studio C++ 2008 Express
Nezmysel.


ne to není nesmysl, žel C++ není na takové úrovni, aby dokázalo hned vybrat indexy pro základ aplikace v tomto případě konzole místo Win32 (API), které bude fungovat na jiné architektuře velmi špatně neli vůbec.

> například stačí ti poznámkový blok a ...
No amen-tma.


stačí. Lepší je samozřejmě CodeBlock, ale na takový malý skriptík tenhle windowsácký editor (budiž mu země lehká) bohatě vystačuje.
los
Profil *
Měsíček
Aha, už som pochopil, čo si tým chcel povedať. Prepáč, beriem späť. Každopádne, konzola JE Win32 aj napriek tomu, že neviem, čo je index pre základ aplikácie.

> ale na takový malý skriptík tenhle windowsácký editor (budiž mu země lehká) bohatě vystačuje.
Ak berie človek programovanie ako formu sebatrýznenia, tak určite áno. Ak má niekto VS2008 Express, tak odporúčať mu Notepad alebo v podstate čokoľvek iné, je také... ehm... divné.
java_script
Profil *
co ten kod změnit takhle:

// start.cpp
// Aplikaci napsal BlackMartin
#include <iostream>
#include <string>
using namespace std;

char znaky[4]={'\007','\n','\b','_'};
void carka(void);
void zadano(void);
const int pocet=9;
int i;

int main()
{
cout<<znaky[0]<<"Datasoft";
for(int i=0;i<3;++i){
cout<<znaky[1];}
zadano();


system("pause");
return 0;
}

void carka(){
for(int a=0;a<pocet;++a){
cout<<znaky[3];}}

void zadano(){
cout<<"Zadejte jmeno:";
carka();
for(int i=0;i<pocet;++i){
cout<<znaky[2];}
string name;
cin>>name;
cout<<znaky[1];
cout<<"Zadejte heslo:";
carka();
for(int i=0;i<pocet;++i){
cout<<znaky[2];}
string heslo;
cin>>heslo;
cout<<znaky[1];
cout<<"zadali jste: "<<name<<" a vaše heslo je: "<<heslo<<znaky[1];
}
Gekon
Profil
java_script
Úžasné. Náhodou ses nedíval, kdy to téma bylo založeno, že?
java_script
Profil *
že nikdo neporadil, s konkrétním případem ale jenom žvanil
los
Profil *
A čítal si si to žvanenie? Bude tvoj program fungovať, aj keď meno alebo heslo obsahuje medzeru? (.eiN)
Měsíček
Profil
Reaguji na java_scripte:

To co jsi poslal byl také menší žvást, fungovat to bude, ale špatně.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0