[C++] Wczytywanie danych, fstream
Ostatnio zmodyfikowano 2013-11-05 18:55
Vister26 Temat założony przez niniejszego użytkownika |
» 2013-11-05 17:58:09 Dlaczego musi być we wskaźniku? W takiej formie przyjmuje to funkcja, do której chcesz to podać? To też tak nie działa. |
Tak, funkcja tworząca gniazdo potrzebuje aby IP było zapisane w takiej formie. @Edit: Dobra już wiem jak to działa. Argumentem jest tu ilość opuszczanych znaków a nie linijek. Zmienilem 'char IPBuffer[ 20 ]' na 'string IPBuffer' i dziala. Do tego nawet nie potrzeba pętli.
|
Użyć funkcji find()? Tylko nie zbyt wiem jak działa (czytałem dokumentację ale tylko po polsku) char * IP = find( first, last, value );
Możliwe jest aby ta funckja zwróciła zakres znaków zamiast jednego podanego w value? |
|
pekfos |
» 2013-11-05 18:24:19 Tak, funkcja tworząca gniazdo potrzebuje aby IP było zapisane w takiej formie. |
To nie musisz nic specjalnego robić. Istnieje niejawna konwersja tablicy char, na char*. Zmienilem 'char IPBuffer[ 20 ]' na 'string IPBuffer' i dziala. |
Operator >> nie zawsze wczytuje całą linię. Użyć funkcji find()? Tylko nie zbyt wiem jak działa (czytałem dokumentację)
char * IP = find( first, last, value );
Możliwe jest aby ta funckja zwróciła zakres znaków zamiast jednego podanego w value? |
To czytałeś dokumentację, czy nie? By obciąć pierwsze n znaków c-stringa, nie musisz używać żadnych funkcji. Wystarczy dodać n do adresu c-stringa. Odcinanie ostatnich znaków jest równie łatwe. Wystarczy umieścić znak zerowy za ostatnim znakiem, który chcesz zachować. Oczywiście do tego wszystkiego możesz używać odpowiednich funkcji z biblioteki standardowej, ale tak jest chyba prościej. #include <iostream>
int main() { char str[] = "abcdef"; std::cout << str + 3 << std::endl; str[ 3 ] = 0; std::cout << str; } def abc |
|
Vister26 Temat założony przez niniejszego użytkownika |
» 2013-11-05 18:55:04 Dzięki wszystkim za pomoc, szczególnie pekfosowi. Wszystko mi już działa. Pozdrawiam ;) |
|
1 « 2 » |