Dweep Skrevet 8. desember 2003 Del Skrevet 8. desember 2003 Jeg er ikke no proff i c++, bedre sakt nybegynner på det sterkeste! Dette programmet skal gjøre om ordet du skriver inn til ascii kode men får error: Her er koden: #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { char C, spacing = ' '; unsigned int i; string s; for(;;) { cout << "skriv et ord: "; cin >> C; while(C != '\n') { i = (int)C; C=(char)i; s.append(C); s.append(spacing); cin >> C; if(C == '£') return 0; } } return 0; } //slutt på main() og her er errorene: --------------------Configuration: binary - Win32 Debug-------------------- Compiling... binary.cpp E:\Kristoffer\c++\binary\binary.cpp(23) : error C2664: 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &__thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::append(con st class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)' : cannot convert parameter 1 from 'char' to 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &' Reason: cannot convert from 'char' to 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' No constructor could take the source type, or constructor overload resolution was ambiguous E:\Kristoffer\c++\binary\binary.cpp(24) : error C2664: 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &__thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::append(con st class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)' : cannot convert parameter 1 from 'char' to 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &' Reason: cannot convert from 'char' to 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' No constructor could take the source type, or constructor overload resolution was ambiguous Error executing cl.exe. binary.exe - 2 error(s), 0 warning(s) Noen som kan hjelpe meg? fortell lett iståfall fordi jeg skjønner ikke mye Lenke til kommentar
daysleper Skrevet 8. desember 2003 Del Skrevet 8. desember 2003 Feilen går ut på at append -metoden forventer basic_string (som er det "samme" som string) mens du gir den en char. Du kan gjøre dette: s += C; s += spacing; ..som gjør det samme som append. (tror jeg sånn veldig i farta) Lenke til kommentar
Dweep Skrevet 8. desember 2003 Forfatter Del Skrevet 8. desember 2003 Takk for raskt svar.. det hjalp Lenke til kommentar
daysleper Skrevet 8. desember 2003 Del Skrevet 8. desember 2003 Kanskje noe slikt du er ute etter: #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) { cout << (int)s[i] << endl; i++; } } } // main() Du kan bruke string som om den var et array som du ser. Du kunne også gjordt slik: while(s[i]) cout << (int)s[i++] << endl; Mer "kompakt". Lenke til kommentar
Dweep Skrevet 8. desember 2003 Forfatter Del Skrevet 8. desember 2003 fant et nytt problem... svaret etter jeg f.eks. har skrevet "hei", skal være tall.. men svaret jeg får er: Hello World! Skriv inn et ord: hei h h e ^^sånn ser det ut!! #include <iostream> #include <cstdlib> #include <string> using namespace std; void ascii(); int main(void) { cout << "Hello World!" << endl; ascii(); } //slutt på main() //---------------------------------------------------------------- void ascii() { char C; char spacing = ' '; unsigned int i; string s; for(;;) { cout << "skriv et ord: "; cin >> C; while(C != '\n') { i = (int)C; C=(char)i; s += C; s += spacing; cin >> C; cout << s; if(C == '£'); } } } Lenke til kommentar
Dweep Skrevet 8. desember 2003 Forfatter Del Skrevet 8. desember 2003 (endret) glem den posten her Endret 8. desember 2003 av Dweep Lenke til kommentar
Dweep Skrevet 8. desember 2003 Forfatter Del Skrevet 8. desember 2003 Kanskje noe slikt du er ute etter: #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) { cout << (int)s[i] << endl; i++; } } } // main() Du kan bruke string som om den var et array som du ser. Du kunne også gjordt slik: while(s[i]) cout << (int)s[i++] << endl; Mer "kompakt". Problemet mitt nå er at jeg skal ha mellomrom mellom tallene og ikke linje skift! hvis jeg bytter << endl; men << " "; så følger "skriv et ord: " etter... og det skal ikek skje, fordi den skal på ny linje.. #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) { cout << (int)s[i] << " "; cout << endl; i++; } } } // main() Lenke til kommentar
daysleper Skrevet 8. desember 2003 Del Skrevet 8. desember 2003 #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) cout << (int)s[i++] << " "; cout << endl; } } // main() Du mener slik: skriv et ord: hei104 101 105 skriv et ord: ? Lenke til kommentar
Dweep Skrevet 8. desember 2003 Forfatter Del Skrevet 8. desember 2003 #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { string s; int i; for(;;) { cout << "skriv et ord: "; cin >> s; if(s == "quit") return 0; i = 0; while(s[i]) cout << (int)s[i++] << " "; cout << endl; } } // main() Du mener slik: skriv et ord: hei104 101 105 skriv et ord: ? helt riktig Lenke til kommentar
daysleper Skrevet 8. desember 2003 Del Skrevet 8. desember 2003 ..og før du (eventuellt) spør, her er gjeldende kode for setninger i stedet for ord hvis du skulle trenge dette: #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { char c[255]; int i; for(;;) { cout << "skriv en setning: "; cin.getline(c, 255); if(c == "quit") return 0; i = 0; while(c[i]) cout << (int)c[i++] << " "; cout << endl; } } // main() Lenke til kommentar
Dweep Skrevet 9. desember 2003 Forfatter Del Skrevet 9. desember 2003 ..og før du (eventuellt) spør, her er gjeldende kode for setninger i stedet for ord hvis du skulle trenge dette: #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(void) { char c[255]; int i; for(;;) { cout << "skriv en setning: "; cin.getline(c, 255); if(c == "quit") return 0; i = 0; while(c[i]) cout << (int)c[i++] << " "; cout << endl; } } // main() Du er en engel : 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å