mortizz Skrevet 13. desember 2005 Skrevet 13. desember 2005 (endret) la oss si at jeg bruker cin for å skaffe input fra brukeren. jeg har et int-array som jeg vil at skal fylles med forskjellige verdier fra stringen brukeren skrev inn. int array[5]; string str; cin >> str; la oss nå si at brukeren taster inn: 12345Nå vil jeg hente disse fem tallene og putte inn i hver sin plass i arrayet. Dessuten bør jeg ha noe errorsjekking, noe som sjekker at brukeren faktisk har skrevet et tall, før programmet putter det inn i arrayet. Huff, slikt er så vanskelig i c++, i php hadde dette vært gjort på et blunk EDIT: fant ut at det gikk ann å gjøre sånn: array[0] = str[0]; men, array[0] blir vel asciiverdien(eller hva det heter) når man konverterer slik? har ikke kompilator her, så får ikke testa.. og har c++ noen standard-funksjoner for å sjekke om det er et tall? Endret 13. desember 2005 av mortizz
JBlack Skrevet 13. desember 2005 Skrevet 13. desember 2005 #include <string> #include <iostream> using namespace std; class Error{ public: char c; Error(char bad_char):c(bad_char){} }; int main(){ string s; cout << "Enter some numbers: " << flush; cin >> s; int *i=new int[s.length()]; try { for (int j=0;j<s.length();j++) { if ((s[j]>='0') && (s[j]<='9')) i[j]=s[j]-'0'; else { Error e(s[j]); throw e; } } cout << "All ok!" << endl; for (int j=0;j<s.length();j++) { cout << i[j] << endl; } } catch (Error e){ clog << "Error! Offending char: '" << e.c << "'" << endl; exit(EXIT_FAILURE); } return EXIT_SUCCESS; }
Dead_Rabbit Skrevet 13. desember 2005 Skrevet 13. desember 2005 Tror du kan gjøre det vha. stringstream; er ikke helt sikker. Gjør et søk på "stringstream" eller noe på forumet.
Peter Skrevet 13. desember 2005 Skrevet 13. desember 2005 Problemet her blir jo å avgjøre hvilke tall som hører sammen. Er det 12345, eller 1 og 2 og 3 og 4 og 5, eller kanskje 12, 3 og 45?
GenericName Skrevet 13. desember 2005 Skrevet 13. desember 2005 (endret) ... Endret 12. januar 2011 av Token
mortizz Skrevet 16. desember 2005 Forfatter Skrevet 16. desember 2005 For å sjekke om noe er tall, så kan du vel bruke isdigit()Men da tror jeg du må gjøre om stringen til char. Jeg prøvde å bruke den, men fikk et par errors. Funker sikkert. Sikkert noe jeg har gjort feil. 5290049[/snapback] stringklassen har jo en funksjon som heter c_str() som returnerer stringen som en const char*, tror jeg.. Men, brukte metoden til JBlack, jeg =) Takker
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå