Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Osetrenie vstupov programu v C

Registrovaný: 28.08.07
Prihlásený: 09.12.23
Príspevky: 943
Témy: 51
Bydlisko: Banska Byst...
Príspevok NapísalOffline : 14.12.2007 18:26

Takaze robis semestralnu pracu v Dec-C++ v C-cku, na ovladanie programu sluzia vyhradne cisla ktore nacitavam z klavesnice do premennej typu int potrebujem podmienku aby po zadani pismen nespadol program, malo by to byt formou podmienky ... za navrhy vdaka :D


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 14.12.2007 21:26

atoi() si skúšal?

Kód:
//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
        char a[20];

        scanf("%s",&a);  //nacitam ako retazec
        (atoi(a)) ? printf("%d\n",atoi(a)) : printf("toto nie je cislo\n");  //ak ide previest tak prevediem, inak je chyba
        system("pause");
        return 0;
}
//---------------------------------------------------------------------------


Offline

Užívateľ
Užívateľ
Osetrenie vstupov programu v C

Registrovaný: 28.08.07
Prihlásený: 09.12.23
Príspevky: 943
Témy: 51
Bydlisko: Banska Byst...
Príspevok Napísal autor témyOffline : 14.12.2007 21:56

super taketo nieco som hladal .. diki :clap:


Offline

Skúsený užívateľ
Skúsený užívateľ
Osetrenie vstupov programu v C

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.12.2007 22:04

napriklad: ;)


ale
int main(int argc, char* argv[])
je parametrizovanie prikazoveho riadku, so vstupom ..cize bez tohto rozsireneho main ;)







_________________
Nebo je modre, voda je mokra...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 14.12.2007 22:44

ja som si to zvykol nemazať a vždy to v mojích programoch ošetrím či nejaké parametre boli. Osobne spúšťam velá konzolových aplikácii z cmd a ak to tam aj je a nedáš parametre nič sa nedeje, tak načo to mazať? ;)


Offline

Skúsený užívateľ
Skúsený užívateľ
Osetrenie vstupov programu v C

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0
Bydlisko: Bratislava
Príspevok NapísalOffline : 14.12.2007 23:28

co zamyslas neviem, len som cital kod







_________________
Nebo je modre, voda je mokra...
Offline

Užívateľ
Užívateľ
Osetrenie vstupov programu v C

Registrovaný: 28.08.07
Prihlásený: 09.12.23
Príspevky: 943
Témy: 51
Bydlisko: Banska Byst...
Príspevok Napísal autor témyOffline : 16.12.2007 13:50

Roberbo píše:
napriklad: ;)


ale
int main(int argc, char* argv[])
je parametrizovanie prikazoveho riadku, so vstupom ..cize bez tohto rozsireneho main ;)


pls co znamena ta posledna veta s parametrizovanim ... treba to osetrenie dako pozmenit ? thx :D


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 16.12.2007 13:58

ide o to, že konzolové aplikácie môžeš spustiť s parametrom z príkazového riadku, napríklad napíšeš do príkazového riadku ping 192.183.122.186 tak spustí program ping.exe a ako parameter mu pošle túto IP. To môžeš spraviť aj vo svojom programe.

Kód:
int main(int argc, char* argv[])
argc je typu int a znamená počet parametrov (potom v cykle prejdeš každý jeden) a argv[] je pole týchto parametrov. Ak ich necheš používať tak jednoducho zmeníš hlavičku na int main() a to je všetko (alebo ju ani nemusíš meniť)


Offline

Užívateľ
Užívateľ
Osetrenie vstupov programu v C

Registrovaný: 28.08.07
Prihlásený: 09.12.23
Príspevky: 943
Témy: 51
Bydlisko: Banska Byst...
Príspevok Napísal autor témyOffline : 16.12.2007 14:19

audiotrack píše:
ide o to, že konzolové aplikácie môžeš spustiť s parametrom z príkazového riadku, napríklad napíšeš do príkazového riadku ping 192.183.122.186 tak spustí program ping.exe a ako parameter mu pošle túto IP. To môžeš spraviť aj vo svojom programe.

Kód:
int main(int argc, char* argv[])
argc je typu int a znamená počet parametrov (potom v cykle prejdeš každý jeden) a argv[] je pole týchto parametrov. Ak ich necheš používať tak jednoducho zmeníš hlavičku na int main() a to je všetko (alebo ju ani nemusíš meniť)


a ako to pls zmenim aby vstup nebolo pole ale iba jeden znak/cislo lebo v tom osetreni je nacitavane pole znakov a ja to potrebujem iba pre jeden s ktorym pracuju dalsie operacie aby som to nemusel cele prerabat :-)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.11.06
Prihlásený: 31.12.07
Príspevky: 677
Témy: 9
Príspevok NapísalOffline : 16.12.2007 14:26

Kód:
char a[20];
zameň za
Kód:
char a;



Kód:
scanf("%s",&a);  //nacitam ako retazec
zameň za
Kód:
scanf("%c",&a); //nacitam znak


a keď si sa pustil do semestrálky tak takéto veci by si mal vedieť


Offline

Užívateľ
Užívateľ
Osetrenie vstupov programu v C

Registrovaný: 02.09.05
Prihlásený: 17.11.10
Príspevky: 154
Témy: 1
Príspevok NapísalOffline : 16.12.2007 14:29

EndersoN píše:
Takaze robis semestralnu pracu v Dec-C++ v C-cku, na ovladanie programu sluzia vyhradne cisla ktore nacitavam z klavesnice do premennej typu int potrebujem podmienku aby po zadani pismen nespadol program, malo by to byt formou podmienky ... za navrhy vdaka :D

Ano mozes jednuducho, fcia scanf() typom int vracia pocet uspesne precitanych hodnot... cize napr :
Kód:
int asdf, int hjkl;
if (scanf("%d %c", &asdf, &hjkl) == 2)
   printf("spravne zadane\n");

pri vstupe 10, "c" vypise text "spravne zadane"...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4
Príspevok NapísalOffline : 16.12.2007 15:11

sa som to robieval tak, ze som cely riadok(vstup) nacital do retazca:

char txt[111];
scanf("%s", txt);

a potom som rozoberal retazec txt;
- ak to mal byt int, tak tam nesmel byt iny znak, nez '0' .... '9'
- ak tam malo byt viac cisel, oddelenych napr. medzerou, tak som rozdelil ten retazec na viac retazcov, pricom v kazdom bolo uz len 1 cislo

napis presne, ako sa ma zadavat vstup, potom sa da uz lepsie daco vymysliet...


Odpovedať na tému [ Príspevkov: 12 ] 


Podobné témy

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

v PHP, ASP

8

469

02.11.2012 18:42

DeiForm Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

4

907

26.01.2009 18:39

ovvo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C - viac vstupov v 1 riadku

v Assembler, C, C++, Pascal, Java

2

327

01.02.2016 20:14

faraon Zobrazenie posledných príspevkov

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

v Delphi, Visual Basic

22

627

12.12.2015 21:11

camarovk19 Zobrazenie posledných príspevkov

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

v PHP, ASP

2

515

25.01.2010 16:36

Slappy Zobrazenie posledných príspevkov

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

v Správy pre vedenie fóra

5

1141

28.10.2009 19:04

Jaro Zobrazenie posledných príspevkov

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

v Biosy a ladenie výkonu

4

3736

27.01.2013 12:56

shiro Zobrazenie posledných príspevkov

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

v Assembler, C, C++, Pascal, Java

2

555

25.11.2009 12:43

dEVIANT Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ošetrenie/zabezpečenie Registracie?

v PHP, ASP

4

487

04.02.2010 17:00

d0.0b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C-ošetrenie nulového menovateľa

v Assembler, C, C++, Pascal, Java

3

484

04.06.2010 13:17

jarrro Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

4

562

05.06.2009 21:06

chrono Zobrazenie posledných príspevkov

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

v Assembler, C, C++, Pascal, Java

5

477

13.11.2011 16:14

walther Zobrazenie posledných príspevkov

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

v Chladiče a všetky druhy chladenia

12

758

03.08.2011 13:44

zalgoo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ošetrenie kroku späť a znovu vpred

v PHP, ASP

6

480

10.11.2012 10:42

xxx9955 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Osetrenie vyjdenie z drahy (turbo pascal)

v Assembler, C, C++, Pascal, Java

11

772

14.12.2008 11:54

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Osetrenie vstupu pre dve slova a viac

v PHP, ASP

3

418

13.05.2013 19:12

BX Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra