Formatar, Converter e Usar Mascaras em Java, C++ e C#

Publicado: 27 de janeiro de 2014 em C#, C/C++, Java

Em C++ e Java podemos usar conversores e flags para formatar mensagens, já o C# não utiliza estes conversores então vamos criar métodos override para simular este recurso, para C# veja Composite Formatting logo abaixo. Visto que veremos o conceito de métodos mais adiante.

Tabela de Conversores C++

%d int mostra um número inteiro
%c char mostra um caracter
%f float ou double mostra um número decimal
%i int mostra um número inteiro
%ld long int mostra um número inteiro longo
%e float ou double mostra um número exponencial (número científico)
%E float ou double mostra um número exponencial (número científico)
%o int mostra um número inteiro em formato octal
%x int mostra um número inteiro em formato hexadecimal
%X int mostra um número inteiro em formato hexadecimal
%s char mostra uma cadeia de caracteres (string)

%n pula uma linha

%b boolean somente para JAVA, pois o C++ não retorna true or false e sim zero(0) e um(1) assim podemos utilizar %d.

Para C# veja:

Composite Format String: http://msdn.microsoft.com/en-us/library/txafckwd(v=vs.110).aspx

Exemplo:

Vamos utilizar o exemplo de código que usamos no post sobre “variáveis” para as linguagens respectivas

JAVA


public class Cad {

public static void main(String[] args) {

int codigo = 461012;

String nome = "Mario Pereira Araujo";

Boolean ativo = true;

Double salario = 1.556;

System.out.format("O Conteudo de codigo é: %d%n", codigo);

System.out.format("O Conteudo de nome é: %s%n", nome);

System.out.format("O Conteudo de ativo é: %b%n", ativo);

System.out.format("O Conteudo de ativo é: %4.3f%n", salario);

}

}

C++


#include "stdafx.h"

#include <iostream>   // habilita I/O entrrada e saída neste caso habilita o cout

#include <string> // habilita a manipulação de strings usado no comando cout

 using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int codigo = 461012;

char* nome = "Mario Pereira Araujo";

bool ativo = false;

double salario = 1.556;

printf ("Este e um int\t-> %d\n", codigo);

printf ("Este e um char\t-> %s\n", nome);

printf ("Este e um float\t-> %d\n", ativo);

printf("Este e um float\t-> %4.3f\n", salario);

system("pause");

return 0;

}

C#


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication1 {


class Program     {

         // Métodos Override sobreposição do método com a mesma entrada porem diferentes tipos
         // Simulamos deste modo linguagens como C++, Java, Python entre outras
         // C# possui seu próprio método para esta funcionalidade chamada Composite format string

         static void printf(string entrada, string conteudo)
         {
             string resultado = entrada.Replace("%s", conteudo);
             Console.WriteLine(resultado);
         }

        static void printf(string entrada, double conteudo)
        {
            string resultado = entrada.Replace("%f", Convert.ToString(conteudo));
            Console.WriteLine(resultado);
        }

        static void printf(string entrada, int conteudo)
        {
            string resultado = entrada.Replace("%d", Convert.ToString(conteudo));
            Console.WriteLine(resultado);
        }

        static void printf(string entrada, Boolean conteudo)
        {
            string resultado = entrada.Replace("%b", Convert.ToString(conteudo));
            Console.WriteLine(resultado);
        }

// void principal
static void Main(string[] args)
{

int codigo = 461012;

String nome = "Mario Pereira Araujo";

Boolean ativo = true;

Double salario = 1.556;

// Simula keyword C++

printf("Este e um int-> %d", codigo);

printf("Este e um string-> %s", nome);

printf("Este e um boolean-> %b", ativo);

printf("Este e um double-> %f", salario);

Console.ReadKey();

}

}

}

Publicidade
comentários
  1. Cosmo José disse:

    Boa tarde,

    Tenho uma dúvida: Como eu uso máscaras de saída usando o comando COUT (padrão C++) e não o PRINFT (padrão ANSI C)?

    Obrigado pela resposta, fique com Deus. (:

  2. Boa noite,

    Entendi, o COUT é somente saída de stream em C++ sem formatação em alguns projetos você pode utilizar as versões seguras do printf como por exemplo o printf_s e outras para utilizar formatação, o próprio compilador retorna aviso pra utilizar uma das versões seguras.

    No entanto se quiser utilizar o COUT você pode utilizar a instrução FORMAT segue exemplos neste link:

    https://msdn.microsoft.com/pt-br/library/hh438469.aspx

    Obrigado pela visita.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s