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

pytanie o sposoby wprowadzania danych

Ostatnio zmodyfikowano 2008-12-27 18:45
Autor Wiadomość
lynx
» 2008-12-24 23:17:27
Możesz sobie zrobić aby getline wczytywał do średnika (3 parametry), a getline samodzielnie będzie sobie wczytywał od ostatniego wczytwanego elementu. :)
P-2956
pekfos
Temat założony przez niniejszego użytkownika
» 2008-12-25 14:20:50
nie sądziłem że to będzie takie proste :) tylko brakuje mi jednego elementu.
jak sprawdzić ile razy został wprowadzony jakiś znak?
P-2969
lynx
» 2008-12-25 14:39:56
Robisz coś takiego, teraz nie chce mi się myśleć jak to można zrobić lepiej, a więc zrobie to prosto i szybko. Kod:
C/C++
std::string tekst;
std::cin >> tekst;
int x = sizeof( tekst );
int ile = 0; //ile razy był średnik;
for( int i = 0; i <= x; i++ )
{
    if( tekst[ i ] == ';' )
         ile++;
   
}
std::cout << ile;
To by było na tyle. :)

Ale chciałem Ci jeszcze powiedzieć że robiąc getlinem i vectorem nie jest Ci potrzebna wiedza ile jest średników. :) Po prostu to co Ci będzie wychodzić z getline dopisujesz do końca Vector-a, a później już sobie robisz z nim co chcesz.
P-2971
pekfos
Temat założony przez niniejszego użytkownika
» 2008-12-25 15:56:14
coś to niezbyt działa
C/C++
#include <iostream>
#include <conio.h>
int main()
{
    std::string tekst;
    std::cin >> tekst;
    int x = sizeof( tekst );
    int ile = 0; //ile razy był średnik;
    for( int i = 0; i <= x; i++ )
    {
        if( tekst[ i ] == ';' )
        {
            ile++;
        }
    }
    std::cout << ile;
    getch();
    return 0;
}
wpisałem abc;123;ad;34;
zwróciło wartość 1
warunek
if( tekst[ i ] == ';' )
spełnił się tylko raz
P-2972
DejaVu
» 2008-12-25 16:20:45
Ten zapis jest nieprawidłowy:
sizeof( tekst );
Jeśli chcesz dostać długość tekstu musisz wpisać:
tekst.length();
P-2973
DeBugger
» 2008-12-25 17:35:12
Dla Pietrzucha:

Funkcja SIZEOF zwraca wielkość klasy, a nie pojedyńczej zmiennej.
P-2974
pekfos
Temat założony przez niniejszego użytkownika
» 2008-12-25 18:59:07
działa :) zaczynam pisać całą funkcję
P-2975
pekfos
Temat założony przez niniejszego użytkownika
» 2008-12-25 19:34:54
podczas kompilacji wystąpił jeden mały błąd i nie wiem jak to naprawić :(
C/C++
#include <sstream>
#include <conio.h>
using namespace std;


int rozdzielaj( string a, char b, int c[] )
{
    int d = a.length();
    int f = 0;
    for( int e = 0; e < d; e++ )
    {
        if( a[ e ] == b ) f++;
       
    }
    string h[ f ];
    string i = "";
    int j = 0;
    for( int g = 0; g < d; g++ )
    {
        if( a[ g ] != b ) i += a[ g ];
       
        if( a[ g ] == b )
        {
            h[ j ] = i;
            j++;
        }
    }
    stringstream l;
    for( int k = 0; k < f; k++ )
    {
        l << h[ k ];
        l >> c[ k ];
    }
    return c;
}


int main()
{
    getch();
    return 0;
}
In function `int rozdzielaj(std::string, char, int*)':
 error: invalid conversion from `int*' to `int'
kompilator wskazuje na
return c;
PS ciało funkcji wygląda dość skomplikowanie przez te krótkie nazwy zmiennych :)
P-2976
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona