mortizz Skrevet 13. desember 2005 Del 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 Lenke til kommentar
JBlack Skrevet 13. desember 2005 Del 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; } Lenke til kommentar
Dead_Rabbit Skrevet 13. desember 2005 Del 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. Lenke til kommentar
Peter Skrevet 13. desember 2005 Del 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? Lenke til kommentar
GenericName Skrevet 13. desember 2005 Del Skrevet 13. desember 2005 (endret) ... Endret 12. januar 2011 av Token Lenke til kommentar
mortizz Skrevet 16. desember 2005 Forfatter Del 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 Lenke til kommentar
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å