Go Down

Topic: concatenar int, float, char (Read 3655 times) previous topic - next topic

luisandrade

Olá pessoal tudo bem?
Estou tentando concatenar 3 tipos de dados diferentes, int, char e float, int e char eu consigo sem problemas, mas no caso do float não funciona, até consegui alguma coisa só que as casas decimais do float depois da virgula não aparecem. Se puderem me ajudar agradeço muito.

Luis andrade

bubulindo

Se pudesses colocar aqui o código que tens para podermos ajudar também ficamos agradecidos.

Já experimentaste o ftoa();
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

luisandrade

Segue o codigo que inicie os testes.

int n_cocho = 1;
char tag_boi "1FI4566WD3";
float peso_cocho = 30,45;

void setup(){
Serial.begin(9600);
}

void loop(){
n_cocho =+ ", ";
n_cocho =+ tag_boi;
n_cocho =+ ", ";
n_cocho =+ peso_cocho;
Serial.print(n_cocho);
}


Edsoncan

Quando você define uma variável, você define a área ocupada, a maneira que o processador vai lidar com ela  e o tempo de criação dessa variável, isso tudo vai parar dentro de um dicionario de variáveis que o compilador usa para montar o código, os compiladores de dois passos criam isso no primeiro passo e usam para montar o código no segundo, geralmente são mais eficientes e o de um passo tentam fazer isso tudo de uma vez, por exemplo:

uma int tem 8 bits e não usa terminador "\0";
uma string tem tamanho definido pelo usuário e usa um terminador "\0"
e por ai vai,

Se você atribui a uma int um float o que o compilador vai fazer só Deus sabe......

Uma maneira mais elegante de se lidar com isso é através de struct  de uma olhada no exemplo abaixo:

#include <iostream>
#include <cstdlib>
using namespace std;

struct data {
int dia;
int mes;
int ano;
};

int main (void){
data hoje;
hoje.dia = 23;
hoje.mes = 9;
hoje.ano = 2008;
cout <<"Hoje e "<<hoje.dia<<"/"<<hoje.mes<<"/"<<hoje.ano<<endl;
system ("pause");
return EXIT_SUCCESS;
}

Veja que a struct é um modelo somente, os dados foram fisicamente criados quanto foi dado o comando data hoje, embora possam ser criados na definição da struct tambem

Edson



bubulindo

LOL

Em C, o separador decimal é um ponto e não uma vírgula...

Code: [Select]

int n_cocho = 1;
char tag_boi[] = {'1','F','I',4','5','6','6','W','D','3','\0'};
float peso_cocho = 30.45;

void setup(){
Serial.begin(9600);
}

void loop(){

Serial.print(n_cocho, DEC);
Serial.print(" ");
Serial.print(tag_boi);
Serial.print(" ");
Serial.print(peso_cocho, DEC);

//n_cocho =+ ", ";
//n_cocho =+ tag_boi;
//n_cocho =+ ", ";
//n_cocho =+ peso_cocho;
//Serial.print(n_cocho);
}


Se calhar aprender C antes de comecares a mexer com strings será o ideal. ;)
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

luisandrade

Obrigado  pela dica, em relação ao separador a minha intensão é concatenar a "," para separar os dados para serem impressos todos de uma vez que serão recebidos por outro programa, bom a ideia é essa.
Serial.print(n_cocho); //1, 1FI4566WD3, 30.45

bubulindo

Code: [Select]
int n_cocho = 1;
char tag_boi[] = {'1','F','I',4','5','6','6','W','D','3','\0'};
float peso_cocho = 30.45;

void setup(){
Serial.begin(9600);
}

void loop(){

Serial.print(n_cocho, DEC);
Serial.print(", ");
Serial.print(tag_boi);
Serial.print(", ");
Serial.print(peso_cocho, DEC);

//n_cocho =+ ", ";
//n_cocho =+ tag_boi;
//n_cocho =+ ", ";
//n_cocho =+ peso_cocho;
//Serial.print(n_cocho);
}

Simples, yes?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Radames

pode dar uma olhada na documentação do operador de soma para strings

http://arduino.cc/en/Tutorial/StringAdditionOperator
http://arduino.cc/en/Reference/String


:)


Go Up