Cout & printf [RESOLVIDO]

1. Cout & printf [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/04/2017 - 18:35h

Eu sou novo no mundo da programação e já estou progredindo rapidamente, estou a fazer um programa para jogos, mas me acostumei com o comando "printf "", eu vim da linguagem C e queria saber se tem problemas se eu usar o printf e scanf em todos os programas que vou fazer em C++.

(Ainda não estudei sobre o cout pois não achei relevante, já que havia pegado o printf no c++)


  


2. Re: Cout & printf [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/04/2017 - 22:57h

Pode usar printf() e scanf() com liberdade. Eles são parte da biblioteca oficial do C++ também.

A preferência por I/O em C++ é porque ela é ao mesmo tempo mais genérica e mais segura do que aquela feita com as funções herdadas do C, e isso através de uma sintaxe uniforme.

Com printf(), você só pode fazer operações de escrita de tipos nativos (e, mesmo assim, não todos: todo float acaba sendo convertido para double, e inteiros com tamanho menor do que sizeof(int) são convertidos para int) e de uns poucos tipos derivados comumente convencionados (como size_t e strings). Para escrever dados de outros tipos, você teria de criar funções específicas, com nomes distintos. Além do mais, com printf() você tem de fazer manualmente a correspondência entre os argumentos a serem impressos e os modos como cada um desses argumentos deve ser interpretado e impresso, por meio da string de formatação. Essa correspondência manual não raramente é fonte de erros.

O análogo vale para scanf(), na hora de realizar operações de entrada (exceto pelo fato de que, por trabalhar com ponteiros, não ocorrem as conversões de tipo indicadas acima; por outro lado, ganha-se a chance de errar o tipo de ponteiro passado à função).

Ao usar a forma C++, você acaba com a string de formatação (e sua interpretação, feita durante a cada execução do programa), substituindo-a por uma análise sintática feita apenas uma vez, durante a compilação, de acordo com o tipo de cada argumento. Além disso, acaba com a limitação de poder usar apenas tipos nativos: por meio do polimorfismo de sobrecarga de operadores, você pode criar funções que permitam fazer a escrita ou leitura de qualquer tipo de dados que você vier a criar.


3. Re: Cout & printf [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/04/2017 - 23:05h

Com printf(), você só pode fazer operações de escrita de tipos nativos (e, mesmo assim, não todos: todo float acaba sendo convertido para double,  


Exatamente isso oque eu queria saber, muito obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts