| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 31.08.06 Prihlásený: 24.09.12 Príspevky: 68 Témy: 7 Bydlisko: Košice |
Zdravím, mám niečo takéto:
Kód: void spustklienta(char *ip, char *fpath); void spustserver();
void main(int argc, char *argv[])
{if(argc==1)spustserver(); else spustklient(argv[1],argv[2]); } atd.... a chcel by som, aby sa argumenty nezadávali do konzoly, ale pýtali sa užívateľa na začiatku programu, teda niečo na štýl: Kód: void spustklienta(char *ip, char *fpath); void spustserver();
void main(int argc, char *argv[])
{ char volba; char IP_adresa; char zdroj; cout<<"Ak si zelate prijat subor, stlacte 1, ak chcete odoslat subor, stlacte 2\n"; cin>>volba; if (volba == '1') runserver(); else if (volba == '2'){ cout<< "Zadajte IP adresu servera vo forme x.x.x.x\n"; cin>>IP_adresa; cout<< "Zadajte cestu ku suboru"; cin>>zdroj; runclient (&IP_adresa, &zdroj);}
Dá sa to nejako?
|
|
Registrovaný: 03.01.11 Prihlásený: 21.02.11 Príspevky: 54 Témy: 1 |
da sa to, ved si si to aj napisal. Len tam volas runserver() a runclient() a metody sa ti volaju spustserver a spustklienta tak si to premenuj
|
|
Registrovaný: 31.08.06 Prihlásený: 24.09.12 Príspevky: 68 Témy: 7 Bydlisko: Košice | Napísal autor témy D.O.D.O: 27.01.2011 17:16 | |
|
Áno, to som si opravil, skompiluje mi to, ale vypíše takúto chybu:
Ked dam ako volbu 1, tak to funguje v poriadku. Ked dam volbu 2, zadam IPcku a dam enter, tak vyhodi tuto chybu.
|
|
Registrovaný: 03.01.11 Prihlásený: 21.02.11 Príspevky: 54 Témy: 1 |
mas tam tie premenne deklarovane ako char (teda znak). Ak to ma byt retazec, bud to spravis ako pole znakov (teda char IP_adresa[15]) alebo pouzijes string. A tiez neviem preco tam posielas adresy tych parametrov a nie ich hodnoty
|
|
Registrovaný: 31.08.06 Prihlásený: 24.09.12 Príspevky: 68 Témy: 7 Bydlisko: Košice | Napísal autor témy D.O.D.O: 27.01.2011 17:48 | |
|
Jasne, uz to funguje, dakujem za pomoc.
|
|
Registrovaný: 31.08.06 Prihlásený: 24.09.12 Príspevky: 68 Témy: 7 Bydlisko: Košice | Napísal autor témy D.O.D.O: 06.02.2011 8:50 | |
|
Ešte jedna otázočka, je priamo v kóde:
Kód: #include<iostream> #include<string> #include<fstream>
using namespace std;
int main() { ifstream source; string source_fname; char * buffer; char test[32]; cout<<"Vlozte cestu ku suboru "<<endl; cin>>source_fname; source.open (source_fname.c_str(), ios::in | ios::binary );
if (source.is_open()) { while ( source.good() ) { buffer = new char [32]; source.read (buffer,32);
//OTÁZKA: Ako dostať 32 znakov, ktoré sú v buffer-i do poľa char test[32]?
delete[] buffer; } source.close(); } return 0; }
Ďakujem
|
|
Registrovaný: 11.01.09 Prihlásený: 19.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 06.02.2011 9:44 | |
|
Kód: strcpy( test, buffer );
Ale pozor. Z tvojho kódu som si všimol, že zo súboru prečítaš 32 znakov a uložíš ich priamo do premennej buffer, ktorá má presne kapacitu pre 32 znakov. Keď ale potom skopíruješ všetko do premennej test a budeš s ňou pracovať, nebudeš mať na konci nulový znak! Takže ak plánuješ potom nejak manipulovať s týmto reťazcom, tak buď zväčši veľkosť poľa test alebo to vyrieš nejak inak a potom tam ešte doplň tú nulu. Ak to ale nepotrebuješ vypisovať apod, tak to ma potom ignoruj.
Funkcia strcpy
// inak to alokovanie pamäte pre buffer máš zbytočne v tej slučke, zbytočne to stále alokuješ a dealokuješ. Kľudne to vyhoď mimo cyklu.
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 Bydlisko: Zilinska Un... |
Odporucam ti riadne nastudovat ukazovatele a dynamicku pracu s pamatou, lebo nevies pouzivat ukazovatele. A ten nulovy \0 znak tam dopisuj na koniec po skopirovani, ak tam nie je, budu ti standardne funkcie to pole vypisovat mimo jeho platnost, az kym sa nenarazi na prvy nulovy znak v inej pamati. Nie je to chyba, ak si to osetris pri prehladavani, ale skor ta to bude mylit pri vypisovani.
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Mám sa učiť C ++/objective C/ C#? v Assembler, C, C++, Pascal, Java | 5 | 729 | 08.07.2014 20:40 XOLOO | | rozdiel medzi Borland 3.1 C++ vs Net. C++ v Assembler, C, C++, Pascal, Java | 4 | 574 | 20.07.2010 12:54 walther | | Hledá se programátor C/C++ pro vesmírné projekty (Praha) v Ponuka práce | 0 | 1122 | 10.05.2016 14:59 evolvsys | | Naučte se C++ za 21 dní + C++Builder 6 v Assembler, C, C++, Pascal, Java | 18 | 2411 | 21.05.2010 21:08 Wpegb | | K: PC Literaturu- C++/C#/java/python/ruby/RoR v Kúpim | 0 | 409 | 13.05.2014 18:16 expresado | | Hladam hracov na C&C Generals Zero Hour v Počítačové hry | 10 | 1248 | 07.03.2007 19:22 Spirit | | Čo mi treba na programovanie v C/C++ v Assembler, C, C++, Pascal, Java | 17 | 1145 | 25.09.2011 18:14 reDo | | aky je rozdiel medzi C++ a Visual C++ ? v Assembler, C, C++, Pascal, Java | 8 | 1962 | 19.02.2011 22:46 vendo2 | | Hladame 3x C/C++ Linux developer- projekt 11/2016-2/2017 v Ponuka práce | 1 | 551 | 24.10.2016 15:28 michalesku | | Darujem knihy o programovaní (HTML, Java, Visual C++, C++ Builder, Android) v Vymením a darujem | 0 | 428 | 01.04.2019 11:20 tomasteicher | | program na projekt (C#, C++, pascal, java) v Assembler, C, C++, Pascal, Java | 2 | 831 | 12.03.2009 12:08 Svjatogor | | C/C++ problém so súbormi a hodnotami v Assembler, C, C++, Pascal, Java | 2 | 308 | 09.12.2012 10:43 nBXXL | | C# alebo C++ , ktore knizky na ucenie? v Assembler, C, C++, Pascal, Java | 20 | 1790 | 12.02.2011 0:12 The | | C&C Generals : Zero Hour - turnaj v Počítačové hry | 0 | 774 | 25.02.2009 20:18 k0t0l | | C# alebo C++ appka/program na výpočty v Assembler, C, C++, Pascal, Java | 1 | 380 | 20.03.2015 22:36 walther | | Ako nastavit grafikuv AMD catalyst c.c. v ATI/AMD grafické karty | 17 | 1482 | 26.12.2013 11:38 walther |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|