Ir ao conteúdo
  • Cadastre-se

Qual é melhor para manipulação de arquivos? c ou c++?


IsacBot
Ir à solução Resolvido por vangodp,

Posts recomendados

Estou estudando a linguagem de programação C, porém, pretendo me aprofundar em C++.

 

Sei que em C++ posso utilizar funções e paradigmas de C e tenho dúvidas se devo usar as funções de C (fprintf(), fscanf()) ou os objetos da fstream de C++.

 

PS: Desculpa se eu falei alguma besteira, mas eu estou começando a estudar estas linguagens e sou muito leigo ainda. :v  

Link para o comentário
Compartilhar em outros sites

@IsacBot Eu aconselho você a começar programar em C++, pois quem programa em C++  é capaz de programar em C, devido à semelhança entre as linguagens e o fato do C++ ser uma extensão do C.

 

Mas existem algumas pequenas diferenças sintáticas e semânticas entre as linguagens que tornam alguns trechos de código C válidos em código C++ inválido.

 

Se aprofunde em C++ e depois estude o pouco que falta da linguagem C.

Link para o comentário
Compartilhar em outros sites

  • Solução

A diferencia poderia se dizer que é "filosófica". >_<

Em C trabalhamos com "Descritor de Arquivos", uma espécie de ponteiro a arquivo, também conhecido originalmente por "File Descriptor" ou abreviadamente por "fd".

FILE* fd;
fd=fopen(NomeDoArquivo, ModoDeAbertura);

Em c++ o conceito é de trabalhar com streams, que traduzido para leigos quer dizer fluxo de dados.
Para trabalhar com arquivos você pense que ou tem fluxo de entrada(in) ou de saída(out), de dados.

//fluxo saida
ifstream fout;
fout.open(NomeDoArquivo, Flags(Modificadores opcionais) );
fout << "cpp";

//fluxo entrada
ifstream fin;
fin.open(NomeDoArquivo, Flags(Modificadores opcionais) );
string palavra;
fin >> palavra;

Tecnicamente fin e fout são obviamente nomes que dei assemelhando-se a cout e cin, porém são também uma espécie de ponteiro que marca a posição onde nos encontramos no arquivo, assim como em C. A diferencia é que C++ se pode apreciar é o uso de operadores << e >> em relatividade a C que não inclui essa prática.

Sinceramente em todos esses anos trabalhando com ambos linguagens não vejo grandes diferenças, posso fazer a mesma coisa com um linguagem que com outro. A diferença talvez mais significativa seja a linguagem em si, cpp acho um linguagem mais útil a dia de hoje, permite trabalhar com streams como cout, cin, ifstrem, ofstream, stringsteram, etc, classes e todo o relacionado com elas como a OO. Sempre que quiser trabalhar com C dentro de CPP será possível já que C esta incluído dentro de CPP também, ou como dizem... cpp é um "superconjunto de C", antigamente se poderia dizer isso, porém C++ já foi tão remodelado que é um linguagem completamente  independente de C.

As vezes pode ser que também queiramos fazer algo muito simples e pequeno, quando isso acontece prefiro faze-lo em c, mas quando a coisa é seria e demolidora prefiro usar c++, porque brinda algumas facilidades que C não fornece, ainda a cambio de inclusão de coisas mais complexas como OO. A OO a objetos pode ser uma barreira difícil de se superar ao principio para um programador novato, sobre tudo se esse programador já veio de outro linguagem como C, pode fazer sua cabeça explodir(>_<), mas superada essa etapa de aprendizagem OO pode se fazer querer, e em alguns casos pode criar muita dependência(Como uma droga). XD

Sinceramente acho que quando uma pessoa tem algumas duvidas como essa deveria experimentar ambas formas para tirar suas conclusões.

Se quiser um conselho aprenda C++ pois é um linguagem com maior saída hoje em dia. Más seria mentir se achar que vai aprender um sem aprender o outro praticamente :muro:, eu optei por aprender ambos, e não me arrependo disso.

 

Link para o comentário
Compartilhar em outros sites

@vangodp

Realmente, concordo com sua opinião.

 

Obrigado pela breve explicação das streams. Não estava encontrando um bom tutorial sobre o assunto - ao menos não para mim que sou bastante leigo em C/C++.

 

Mas, sobre a OO: eu comecei a estudar programação com java e... Não é possível se livrar desse paradigma nessa linguagem... só que eu não lembro de mais nada de java, nem de OO por causa da falta prática... :v

 

De qualquer forma, muito obrigado pela resposta. :D 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!