Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Polecenia w językach C i C++

Adalbercik 07 Lis 2017 15:29 378 3
  • #1 07 Lis 2017 15:29
    Adalbercik
    Poziom 6  

    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?

    0 3
  • Pomocny post
    #2 07 Lis 2017 15:46
    tronics
    Poziom 36  

    cout, cin to objekty, printf(), scanf() to funkcje, z wszystkich można korzystać w C++, w C tylko z printf(), scanf()

    0
  • #3 07 Lis 2017 15:54
    JacekCz
    Poziom 36  

    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++

    0
  • #4 08 Lis 2017 09:22
    _Electron
    Poziom 3  

    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"

    0