benciks
Junior Member
 
Ziņojumi: 21
Pievienojās: Mar 2009
Reputācija: 0
|
c++
Man mājasdarbā ir vajadzīgs pārvērst ievadīto "string" par "integer" un ja tiek ievadīti nepareizi ievaddati jādod kļūdas paziņojums.
zinu, ka ir tāda lieta kā "atoi" proti
"mainīgais integers" = atoi("ievadītais string");
bet nevaru nekādi izdomāt, kā lai ar viņa palīdzību tieku pie "kļūdas paziņojuma".  : 
Varbūt, kādam no jums ir kāda ideja?
Vai varbūt ir kādi ir vel kādi citi varianti, funkcijas, kuras darbojas foršāki?
|
|
| 13.10.2009 22:20 |
|
telezypher
kauts kas labaks c(:[
   
Ziņojumi: 615
Pievienojās: Aug 2006
Reputācija: 6
|
RE: c++
|
|
| 13.10.2009 22:37 |
|
benciks
Junior Member
 
Ziņojumi: 21
Pievienojās: Mar 2009
Reputācija: 0
|
RE: c++
Nu to par nulli es zinu, bet es vnk iedomājos, ka pasniedzējas varētu piesieties par to, ka ja ievada simbolu "0" vai "000000000" tad man
rādītu - "Errors - Nepareizi ievaddati"
!!!man iešāvās pierē (doh), ka var ar ciklu samazināt tādas virknes kā "00000000000" vai " 000" par "0" un tad vnk
varētu jau kaut ko normālu sazīmēt
thx, mācos pirmajā kursā
(Šo ziņojumu pēdējo reizi modificēja: 13.10.2009 23:48 benciks.)
|
|
| 13.10.2009 23:46 |
|
bubu
Senior Member
   
Ziņojumi: 469
Pievienojās: Aug 2006
Reputācija: 8
|
|
| 14.10.2009 15:47 |
|
Mezha_lauminja
Senior Member
   
Ziņojumi: 518
Pievienojās: Sep 2005
Reputācija: 9
|
RE: c++
Ja tu esi primajaa kursaa (un jo iipashi ja tas ir kurss Programmeeshana I/II), tad pasniedzeejs visticamaak ir domaajis, ka tu ar for ciklu iesi cauri visiem virknes simboliem un pats apreekjinaasi savu skaitlji - katru reizi kad dabuu jaunu simbolu, tad peec ASCII tabulas uzzini kas tas par skaitli, un iepriekshseejos soljos areekjinaatajo skaitli pareizini ar desmit, peec tam pieskaiti jauno ciparu klaat. Apmeeram taa, kodu priekshaa nerakstiishu.
Iesaku pajautaat pasniedzeejam, ja liidz nodoshanai veel ir pietiekami daudz laika.
bubu: man likaas, ka C++ standarti pieprasa, lai jebkura standartiem atbilstosha C programma buutu arii C++ programma, vai tad ne?
Kas tu par vilku? – saka man.
Es tiešām esmu mājas suns[..]
(Šo ziņojumu pēdējo reizi modificēja: 14.10.2009 18:55 Mezha_lauminja.)
|
|
| 14.10.2009 18:54 |
|
benciks
Junior Member
 
Ziņojumi: 21
Pievienojās: Mar 2009
Reputācija: 0
|
RE: c++
(14.10.2009 15:47 )bubu rakstīja: atoi ir C. Ja programmējam C++, tad lietojam std::stringstream - http://fizmati.lv/forums/thread-1197-pos...l#pid11793
Tas "stringstream" ir baigi labā fiča, it īpaši tādēļ, ka palaižot c++ nokompilētu tekstu ar "otoi" proga kārās nost
Bet es īsti nesaprotu, kā precīzi "stringstream" īsti strādā.
vnk ar varenās googles tantes palīdzību netieku krastā.
Cik saprotu "stringstream" izveido speciālu pointer tipa būferi speciāli priekš simbolu virknes, kura drīkst sastāvēt tikai no ciparu simboliem, vārdu sakot vis pa vienam simbolam iet iekšā būferī un proces apstājas, ja kārtējais simbols nav skaitlis.
Vai es pareizi saprotu?
p.s.
Vnk kā šo darīt lekcijās mums vel nav stāstīts, par ASCII tabulām arī vel nekas nav teikts, bet darbs jāizdara līdz 20 oktobrim.
Mācos pie Zutera, varbūt viņš grib, lai mēs paši patstāvīgi mēģinam ko sameklēt - nezinu, neesmu viņam jautājis.
(Šo ziņojumu pēdējo reizi modificēja: 14.10.2009 21:15 benciks.)
|
|
| 14.10.2009 20:59 |
|
benciks
Junior Member
 
Ziņojumi: 21
Pievienojās: Mar 2009
Reputācija: 0
|
RE: c++
ups, laikam bik pārpratu udevuma noteikumus
"Precizējums. Uzdevumos, kuros ir teikts, ka doti veseli (vai naturāli) skaitļi, nav jāpārbauda, vai ievadītie simboli nav burti (pārbaudot tiks ievadīti tikai skaitļi). Reāli tas nozīmē, ka ieejas dati jāpārbauda uz loģiski nepieļaujamām vērtībām (dalīšana ar 0, kvadrātsakne no negatīva skaitļa, utt.), bet nevis uz to, vai tie atbilst mainīgā tipam, kurā tie jāieraksta."
Bet tik un tā paldies par inf
|
|
| 14.10.2009 22:33 |
|
ulzha
Koto Member
   
Ziņojumi: 597
Pievienojās: May 2006
Reputācija: 18
|
RE: c++
(14.10.2009 20:59 )benciks rakstīja: Tas "stringstream" ir baigi labā fiča, it īpaši tādēļ, ka palaižot c++ nokompilētu tekstu ar "otoi" proga kārās nost 
Tu kaut ko mudies  Un vispirms jau noskaidro gan, kas tieši tieši tieši tev jādara!
(14.10.2009 20:59 )benciks rakstīja: Cik saprotu "stringstream" izveido speciālu pointer tipa būferi speciāli priekš simbolu virknes, kura drīkst sastāvēt tikai no ciparu simboliem, vārdu sakot vis pa vienam simbolam iet iekšā būferī un proces apstājas, ja kārtējais simbols nav skaitlis.
Vai es pareizi saprotu?
Nesakarīga runa. Kādi vēl pointeri? stringstream ir klase, kas piedāvā iostream (ievadizvada plūsmu) saskarni virknei. Vienkārši izsakoties - ļauj lasīt no virknes ar ">>" gluži kā no faila. Tā tu vari eleganti pamēģināt nolasīt skaitļus un visādi citādi formatētus datus no virknes un izmantot eof() un bad() utt., lai noskaidrotu, kas nebija.
(14.10.2009 18:54 )Mezha_lauminja rakstīja: bubu: man likaas, ka C++ standarti pieprasa, lai jebkura standartiem atbilstosha C programma buutu arii C++ programma, vai tad ne?
Ne gluži jebkura, bet gandrīz. atoi, protams, jāstrādā; Bubu vnk pūrists
|
|
| 15.10.2009 10:09 |
|
bubu
Senior Member
   
Ziņojumi: 469
Pievienojās: Aug 2006
Reputācija: 8
|
RE: c++
(14.10.2009 18:54 )Mezha_lauminja rakstīja: bubu: man likaas, ka C++ standarti pieprasa, lai jebkura standartiem atbilstosha C programma buutu arii C++ programma, vai tad ne?
Nē, tā nav. Es varu iedot kodu, kurš zem C darīs pilnīgi kautko citu, nekā zem C++. Lūdzu, viens no variantiem:
Kods:
#include <stdio.h>
int main()
{
if (sizeof('x') == 1)
{
printf("Esmu kompilēts ar C++\n");
}
else
{
printf("Esmu kompilēts ar C\n");
}
}
Attiecīgi - ieliec printf vietā ko sarežģītāku un dabūsi pilnīgi savādāk darbojošos programmu.
(Šo ziņojumu pēdējo reizi modificēja: 15.10.2009 11:28 bubu.)
|
|
| 15.10.2009 11:27 |
|
benciks
Junior Member
 
Ziņojumi: 21
Pievienojās: Mar 2009
Reputācija: 0
|
RE: c++
Vis ok, vnk sākumā biju dimājis, ka uzdevums ir bik grūtāks nekā patiesībā tāds ir.
"A12 - Izveidot programmu valodā C++. Ievadot loģiski nepareizus datus,
programmai jāizdod atbilstošs paziņojums. Jābūt iespējai programmu
izpildīt atkārtoti."
"Precizējums. Uzdevumos, kuros ir teikts, ka doti veseli (vai naturāli) skaitļi, nav jāpārbauda, vai ievadītie simboli nav burti (pārbaudot tiks ievadīti tikai skaitļi). Reāli tas nozīmē, ka ieejas dati jāpārbauda uz loģiski nepieļaujamām vērtībām (dalīšana ar 0, kvadrātsakne no negatīva skaitļa, utt.), bet nevis uz to, vai tie atbilst mainīgā tipam, kurā tie jāieraksta."
vnk sākumā biju domājis, ka "loģiski nepareizi ievaddati" ietver arī jēdzienu "muļķu droša programma"
(Šo ziņojumu pēdējo reizi modificēja: 16.10.2009 09:48 benciks.)
|
|
| 16.10.2009 09:46 |
|