Lab C++

Codificação Eficiente

Não basta conhecer a sintaxe, é preciso conhecer a linguagem, saber a melhor forma de fazer.

Categoria: Snippets

Parser de Campos Utilizando strtok

Uma ótima ferramenta para fazer parser de campos separados por caracter é o strtok. Nesse caso vamos fazer um contador de palavras e um parser básico de CSV. Apesar de ser uma função muito bem documentada tem gente que ainda se enrola um pouco ao usar, então vamos aprender como fazer certo.

(mais…)

Calculadora RPN em C

Recentemente orientei um participante da lista ccppbrasil com um exercício que ele estava tentando fazer. E dentre as soluções que eu sugeri tinha a opção dele criar uma calculadora RPN utilizando C. Pra quem não sabe como funciona uma calculadora RPN (Notação Polonesa Reversa), pode dar uma olhada neste link.

Na verdade o rapaz queria fazer parse de álgebra direta, eu orientei fazer uma RPN com uma pilha de 2 variáveis, x e y. E agora eu desenvolvi a solução e decidi disponibilizar. Vamos a primeira opção:

(mais…)

Tratamento de Erros com C

Tratamento de erros em C pode se tornar um problema. É muito fácil se perder um conjuntos de ifs aninhados, aumentando cada vez mais a interpretação do código, dificultando, consequentemente, sua manutenção. Vamos ver um exemplo:

(mais…)

Trace Condicional

Trabalhei com uma equipe que tinha o costume de fazer traces da seguinte forma:

char *logtrace = ::getenv("LOGTRACE");
// ...
if (logtrace) std::cout << "*** Starting CUtil::promoteSale ***" << std::endl
if (logtrace) std::cout << "* Arg saleID: " << saleID << std::endl;
if (logtrace) std::cout << "* Arg owner: " << owner << std::endl; 
(mais…)