2 entery w winsock

0
char say[BFRSZ]; 
    ZeroMemory(say,BFRSZ);
     cin.getline(say,BFRSZ);

    
        send(klient, say, sizeof(say), 0);

ktos wie moze jak zaradzic temu ? przesyla mi do komunikatora text z enterem... probowalem cin.ignore() i usuwanie endl; ale nic nie daje ... ciagle jest text .. linijka odstepu .. text

0
char say[];
cin.getline()

to ZUO! Używaj

string say;
getline(cin, say)

.

@down: No wiem, ale to jest zbyt głupie żeby to wytrzymywać.

@quetzalcoatl: ano, w sumie char* też be ;P.

0

manfredku, no w sumie racja, tylko tak trochę nie na temat ;)

sraczko jelitowa, jak to endl usuwałaś? :]
I czy wysyłasz w sposób umyślny cały bufor (razem ze śmieciami), zamiast tylko wczytanego tekstu?

Na tę chwilę rady:

  1. wyświetl sobie na cout wczytany tekst: zobaczysz, że nie zawiera on żadnych znaków enter (bo getline czyta DO entera, BEZ entera)
  2. wysyłaj strlen(say)+1 bajtów
  3. weź zobacz, co zwraca send! send nie musi wysłać całego tekstu naraz, może przesłać tylko x bajtów, w takim wypadku musisz jeszcze raz wywołać send, żeby dosłał resztę
  4. w związku z tematem: błąd z enterami masz najpewniej po stronie klienta.
  5. albo pokaż jak otwierasz gniazdo, i jakie to mu ustawienia dajesz, słabo to znam, ale w tym miejscu może jakąś flagę wdziubałeś, co nakazuje dodawać enter po każdym komunikacie. Ale to jakoś mi się przekombinowane, mało możliwe i w ogóle naciągane zdaje.
0

jej dzieki bardzo !~

0

AAaa dzieki bardzo za pomoc dziaua elegancko oto kod :

     string say; 
                 getline(cin,say); 
     
          send(klient,say.c_str(), say.length()+1, 0);

Mam tylko jedno pytanko ... dlaczego jak jest zwykla dlugosc stringa ( a nie length+1) wypluwa na koncu okruszki..

0

bo na końcu stringa, za tekstem właściwym, znajduje się bajt o kodzie 0, który oznacza: "koniec tekstu". Jeśli tego zera/NULLa nie wyślesz, to podczas wyświetlania na ekranie komputer "nie zatrzymuje się na końcu", tylko pisze dalej, i dalej... aż gdzieś w pamięci natrafi na zero. A po drodze... a po drodze napotyka na jakąś losową sieczkę, która wygląda jak wygląda.

1 użytkowników online, w tym zalogowanych: 0, gości: 1