Przenoszenie tekstu wpisanego z palca do tablicy typu char znak po znaku
Ostatnio zmodyfikowano 2015-12-14 15:51
m4dm4x Temat założony przez niniejszego użytkownika |
Przenoszenie tekstu wpisanego z palca do tablicy typu char znak po znaku » 2015-12-13 18:58:23 Jak wyżej, wpisujemy jakiś tekst do zmiennej typu char(char napis; cin>>napis;). Jak teraz włożyć ten tekst do tablicy? |
|
BezPrzewodowy |
» 2015-12-13 19:51:09 Nie możesz wpisywać jakiegoś tekstu do zmiennej typu char. Char przetrzymuje tylko jeden znak.
|
|
m4dm4x Temat założony przez niniejszego użytkownika |
» 2015-12-13 20:19:39 Pardon, do zmiennej typu string |
|
mateczek |
» 2015-12-13 20:32:13 Czy o to chodziło ??? #include <iostream> #include <string>
using namespace std;
int main() { string text { "ala ma tygrysa" }; const char * a = text.c_str(); for( int i = 0; i < text.size(); i++ ) { cout << a[ i ] << endl; } }
|
|
m4dm4x Temat założony przez niniejszego użytkownika |
» 2015-12-13 21:40:08 Jest prawie super z jednym małym "ale". Program, który dzięki temu napisałem działa (wypełnia tablicę tekstem) do momentu pojawienia się spacji po której przestaje, a ja chce, żeby również je wypisywał (jest to kluczowe dla rozwiązania problemu). Tak więc zamiast "ala ma tygrysa" mam "ala" Wrzucam kod: #include <iostream> #include <string> using namespace std; string text;
void wczytaj( void ) { cin >> text; } void format( void ) { const char * tab = text.c_str(); for( int i = 0; i < text.size(); i++ ) { cout << tab[ i ]; } }
int main() { wczytaj(); format(); return 0; }
|
|
carlosmay |
» 2015-12-13 23:09:05 char ch; char tab[ 512 ]; int i = 0; cin.get( ch ); while( ch != '\n' ) { tab[ i++ ] = ch; cin.get( ch ); } tab[ i ] = '\0'; cout << tab << endl;
Może takie rozwiązanie? |
|
m4dm4x Temat założony przez niniejszego użytkownika |
» 2015-12-14 14:06:42 Przy "cin.get" error: no matching function for call to 'std::basic_istream<char>::get(std::string&)'| #include <iostream> #include <string> #include <conio.h> using namespace std; string text; char tab[ 512 ];
void wczytaj( void ) { cin >> text; } void format( void ) { int i = 0; cin.get( text ); while( text != '\n' ) { tab[ i++ ] = text; cin.get( text ); } tab[ i ] = '\0'; cout << tab << endl; }
int main() { wczytaj(); format(); return 0; }
Btw cout << tab nie powinien zwrócić tylko tab[0]?? |
|
carlosmay |
» 2015-12-14 14:17:05 std::cin.get() pobiera znaki pojedynczo ze strumienia. W twoim przykładzie dla zmiennej typu std::string dobrym rozwiązaniem jest std::getline(std::cin, text); . Wczytuje cały wiersz do zmiennej 'text'. |
|
« 1 » 2 |