logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Użycie cout i cin w C++ a odpowiedniki w języku C

Adalbercik 07 Lis 2017 15:29 2193 3
  • #1 16807186
    Adalbercik
    Poziom 9  
    Posty: 5
    Witam, czy polecenia "cout" oraz "cin" używamy wyłącznie w języku C++? Czy można ich użyć w języku C? Jeżeli nie to jak wygląda to polecenie w języku C?
  • #3 16807223
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1464
    tronics napisał:
    ... w C tylko z printf(), scanf()


    Popularne (w mojej opinii nadmiernie) funkcje formatujące nie są jedyne, a np słabiutkie komputery jak mikroprocesory ujawniają, są kosztowne.

    Używanie w/w gdy nie zachodzi formatowanie jest przesadne.
    Zamiast printf dla danych znakowych można użyć puts, a dość bliskim zamiennikiem scanf jest gets (używanie: pierwsza pozycja z googla)
    Nawet powiedziałbym w typowym użyciu są względnie bardziej podobne odpowiednikom z C++
  • #4 16808854
    _Electron
    Poziom 7  
    Posty: 16
    Ocena: 1
    Dla jasności cin i cout to faktycznie obiekty, ale uważam ten komentarz, za zbyt zdawkowy dla ogólnego zrozumienia problemu. Języki takie jak C czy C++ nie udostępniają instrukcji wejścia czy wyjścia. Za to odpowiedzialny jest system operacyjny, a istnieją biblioteki wykonane w języku C, C++ czy Asm, któe te funkcje opakowują. W C mamy scanf oraz printf. W języku C++ jest cin oraz cout które są obiektami - czyli bytami zawierającymi zestaw danych oraz funkcji(metod) spełniających daną odpowiedzialność - tutaj wejście wyjście. Wywołanie tutaj odpowiednich metod zapewniają operatory << oraz >>, które są po prostu przeciążone w kontekście tych obiektów, czyli ich działanie jest zmienione dla pewnych klas.

    Co do ograniczania się do scanf i printf - nie polecam zakładać tego od razu przy pisaniu programu. Program powinien być na tyle podzielona na warstwy, żeby zmiana warstwy wyjścia, czy prezentacji była łatwa w wymianie, wtedy możemy zmienić sposób wypisywania w zależności od potrzeb, a nie ma co zastanawiać się przedwcześnie nad wydajnością, jak program ma pracować na jakimś serwerze. Program należy wykonać zgodnie ze sztuką, a jak wyjdą problemy z wydajnością, należy go ZBADAĆ pod względem wydajności i dopiero ZLOKALIZOWAĆ WĄSKIE GARDŁA, a nie rzeźbić na ślepo na poziomie pisania kodu.

    Jak to mawia mistrz Donald Knut " premature optimization is the root of all evil"
REKLAMA