Czy printf i scanf nadal żyją w C++ ?

0

Tak się zastanawiam, czy printf i scanf są w ogóle aktualnie wykorzystywane przez programistów C++ ?

7

Przez niektórych tak, ale źle się na to patrzy (brak silnego typowania). Jeśli programujesz w C++ i iostreamy są dla Ciebie zbyt wolne/nieprzyjemne w użyciu to raczej używasz bibliotek typu cppformat czy Boost.Fomat.

2

Przez niektórych tak, ale źle się na to patrzy (brak silnego typowania).

Dzisiejsze kompilatory potrafią sobie z tym poradzić.

C:\myprogs\cpp>copy con test.cpp
#include <stdio.h>
int main()
{
  printf("%s", 777);
}
^Z
Liczba skopiowanych plików:         1.

C:\myprogs\cpp>gpp test.cpp -o test.exe -Wall
test.cpp: In function 'int main()':
test.cpp:4:19: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'int' [-Wformat=]
   printf("%s", 777);
                   ^

C:\myprogs\cpp>
4

To prawda, ale nie wszystkie kompilatory o tym mówią - a nawet jeśli, to nie zawsze są w stanie (np. z powodu użycia dynamicznych stringów formatujących - co jest złe ale się zdarza np. przy lokalizacji).

Ponadto, o czym zapomniałem wspomnieć w poprzednim poście, jeśli planujesz użyć typu o stałej wielkości, np. int32_t, to musisz bawić się w różne wygibasy typu PRIu32.

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