[ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 31.08.06
Prihlásený: 24.09.12
Príspevky: 68
Témy: 7 | 7
Bydlisko: Košice
NapísalOffline : 27.01.2011 16:26 | c++ argumety

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?


Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 03.01.11
Prihlásený: 21.02.11
Príspevky: 54
Témy: 1 | 1
NapísalOffline : 27.01.2011 16:56 | c++ argumety

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


Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 31.08.06
Prihlásený: 24.09.12
Príspevky: 68
Témy: 7 | 7
Bydlisko: Košice
Napísal autor témyOffline : 27.01.2011 17:16 | c++ argumety

Áno, to som si opravil, skompiluje mi to, ale vypíše takúto chybu:
c++ argumety

Ked dam ako volbu 1, tak to funguje v poriadku. Ked dam volbu 2, zadam IPcku a dam enter, tak vyhodi tuto chybu.


Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 03.01.11
Prihlásený: 21.02.11
Príspevky: 54
Témy: 1 | 1
NapísalOffline : 27.01.2011 17:30 | c++ argumety

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


Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 31.08.06
Prihlásený: 24.09.12
Príspevky: 68
Témy: 7 | 7
Bydlisko: Košice
Napísal autor témyOffline : 27.01.2011 17:48 | c++ argumety

Jasne, uz to funguje, dakujem za pomoc.


Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 31.08.06
Prihlásený: 24.09.12
Príspevky: 68
Témy: 7 | 7
Bydlisko: Košice
Napísal autor témyOffline : 06.02.2011 8:50 | c++ argumety

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


Offline

Skúsený užívateľ
Skúsený užívateľ
c++ argumety

Registrovaný: 11.01.09
Prihlásený: 25.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 06.02.2011 9:44 | c++ argumety

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.


Offline

Užívateľ
Užívateľ
c++ argumety

Registrovaný: 02.11.07
Prihlásený: 18.03.15
Príspevky: 470
Témy: 22 | 22
Bydlisko: Zilinska Un...
NapísalOffline : 06.02.2011 18:44 | c++ argumety

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
 [ Príspevkov: 8 ] 


c++ argumety



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Mám sa učiť C ++/objective C/ C#?

v Backend

5

848

08.07.2014 20:40

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

Hladam hracov na C&C Generals Zero Hour

v Hry a herné konzoly

10

1359

07.03.2007 19:22

Spirit

V tomto fóre nie sú ďalšie neprečítané témy.

rozdiel medzi Borland 3.1 C++ vs Net. C++

v Backend

4

662

20.07.2010 12:54

walther

V tomto fóre nie sú ďalšie neprečítané témy.

K: PC Literaturu- C++/C#/java/python/ruby/RoR

v Bazár

0

522

13.05.2014 18:16

expresado

V tomto fóre nie sú ďalšie neprečítané témy.

Hledá se programátor C/C++ pro vesmírné projekty (Praha)

v Ponuka a dopyt práce

0

1580

10.05.2016 14:59

evolvsys

V tomto fóre nie sú ďalšie neprečítané témy.

Naučte se C++ za 21 dní + C++Builder 6

v Backend

18

2567

21.05.2010 21:08

Wpegb

V tomto fóre nie sú ďalšie neprečítané témy.

aky je rozdiel medzi C++ a Visual C++ ?

v Backend

8

2088

19.02.2011 22:46

vendo2

V tomto fóre nie sú ďalšie neprečítané témy.

Čo mi treba na programovanie v C/C++

v Backend

17

1290

25.09.2011 18:14

reDo

V tomto fóre nie sú ďalšie neprečítané témy.

Hladame 3x C/C++ Linux developer- projekt 11/2016-2/2017

v Ponuka a dopyt práce

1

659

24.10.2016 15:28

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

Darujem knihy o programovaní (HTML, Java, Visual C++, C++ Builder, Android)

v Bazár

0

548

01.04.2019 11:20

tomasteicher

V tomto fóre nie sú ďalšie neprečítané témy.

C/C++ problém so súbormi a hodnotami

v Backend

2

413

09.12.2012 10:43

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

C# alebo C++ , ktore knizky na ucenie?

v Backend

20

1959

12.02.2011 0:12

The

V tomto fóre nie sú ďalšie neprečítané témy.

program na projekt (C#, C++, pascal, java)

v Backend

2

941

12.03.2009 12:08

Svjatogor

V tomto fóre nie sú ďalšie neprečítané témy.

C# alebo C++ appka/program na výpočty

v Backend

1

482

20.03.2015 22:36

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Ako nastavit grafikuv AMD catalyst c.c.

v AMD grafické karty

17

1595

26.12.2013 11:38

walther

V tomto fóre nie sú ďalšie neprečítané témy.

C - Ako prekompilovať .c súbor do .exe?

v Backend

7

664

02.11.2012 18:47

MasterMatoSK



© 2005 - 2026 PCforum, edited by JanoF