std::istream
ma prototyp istream& read (char* s, streamsize n)
rzeczywisty liczba odczytanych bajtów należy zdobyć dzwoniąc istream::gcount()
, również ważność istream
może być znany z ios::good
.Zrozumienie projektowania std :: istream :: czytaj
Omawiałem implementację innej klasy strumieniowej, którą próbowałem napisać z moim kolegą, gdzie mówiłem, że mogę podążać za tym projektem; ale powiedział, że zamiast wywoływać użytkownika za każdym razem, można mieć prototyp odczytywania, taki jak ten istream& read (char* s, streamsize n, size_t &bytes_read)
, tak że przejdzie on w jednym wywołaniu, a pierwszy jest bardziej niezgrabny. Nie byłem w stanie obronić wyboru projektu w stylu std
. Jakie jest prawdziwe uzasadnienie dla istream::read
?
Masz na myśli 'size_t & bytes_written'? I prawdopodobnie powinien to być 'streamed & bytes_written' (lub może' chars_read'). –
@ James: Tak, dziękuję! Bajty i znaki są synonimami _tutaj, ponieważ 'sizeof' jest taki sam :) – legends2k