Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przenoszenie tekstu wpisanego z palca do tablicy typu char znak po znaku

Ostatnio zmodyfikowano 2015-12-14 15:51
Autor Wiadomość
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?
P-141910
BezPrzewodowy
» 2015-12-13 19:51:09
Nie możesz wpisywać jakiegoś tekstu do zmiennej typu char.
Char przetrzymuje tylko jeden znak.

P-141913
m4dm4x
Temat założony przez niniejszego użytkownika
» 2015-12-13 20:19:39
Pardon, do zmiennej typu string
P-141917
mateczek
» 2015-12-13 20:32:13
Czy o to chodziło ???

C/C++
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string text { "ala ma tygrysa" };
    const char * a = text.c_str(); //dostęp do tablicy char
    for( int i = 0; i < text.size(); i++ ) {
        cout << a[ i ] << endl; //tablica
    }
   
}
P-141918
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:
C/C++
#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;
}
 
P-141924
carlosmay
» 2015-12-13 23:09:05
C/C++
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?
P-141927
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&)'|
C/C++
#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;
   
    /*const char*tab=text.c_str();
        for(int i = 0;i<text.size();i++)
            {
            cout <<tab[i];
            }*/
}

int main()
{
    wczytaj();
    format();
    return 0;
}

Btw cout << tab nie powinien zwrócić tylko tab[0]??
P-141948
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'.
P-141949
« 1 » 2
  Strona 1 z 2 Następna strona