Ir ao conteúdo
  • Cadastre-se

C Iniciante: char, int, float: %c, %d, %f. Comportamento inesperado.


Luiz Castelo
Ir à solução Resolvido por JorgeGus,

Posts recomendados

Pessoal estou com uma dúvida extremamente iniciante.

Com a finalidade de iniciar na linguagem C e entender os inteiros, caracteres, floats, etc eu estou tentando rodar um programa muito simples. Estou trabalhando com o Ubuntu e com o Geany 1.36.

Na verdade são duas dúvidas:

 

1) Se trabalho com windows tenho a biblioteca conio.h para trabalhar com caracteres. Se trabalho no Linux/Unix não tenho tal biblioteca. Isso quer dizer que se eu desenvolver um código em um sistema operacional ele não roda no outro? Como resolver essa questão e rodar em qualquer plataforma se esse for o caso?

 

2) Vou postar um programa que funciona e um que não funciona, tudo que eu fiz foi acrescentar uma variável a mais e pedir a "mesma coisa" que no programa funcional. Se alguém puder me dizer o motivo de rodar um e não rodar o outro (corretamente) será uma ajuda e tanto.

 

Vamos para o programa funcional:

 

#include <stdio.h> 
 
int main ()

{
	char Ch1;
	int num1;
	float num2;
	
	
	printf ("Como são as saídas das diferentes variáveis \n");
	
	printf ("Digite um caractere (somente um): ");
	scanf  ("%c", &Ch1);
	
	printf ("Digite um número inteiro: ");
	scanf  ("%d", &num1);
	
	printf ("Digite um número não inteiro: ");
	scanf  ("%f", &num2);
	
	printf ("\n\n");	
	
	printf ("O caractere digitado foi: %c \n", Ch1);
	printf ("O número inteiro digitdo foi: %d \n", num1);
	printf ("O número não inteiro digitdo foi: %f \n", num2);
		
	
	return (0);	
}

Neste código a saída é exatamente a esperada.

 

O problema está neste segundo e também simples programa:

 

#include <stdio.h> 
 
int main ()

{
	char Ch1;
	char Ch2; /* Acrescentei em reção ao programa anterior */
	int num1;
	float num2;
	
	
	printf ("Como são as saídas das diferentes variáveis \n");
	
	printf ("Digite um caractere (somente um): ");
	scanf  ("%c", &Ch1);
	
	printf ("Digite um caractere (somente um): "); /* Acrescentei em reção ao programa anterior */
	scanf  ("%c", &Ch2); /* Acrescentei em reção ao programa anterior */
	
	printf ("Digite um número inteiro: ");
	scanf  ("%d", &num1);
	
	printf ("Digite um número não inteiro: ");
	scanf  ("%f", &num2);
	
	printf ("\n\n");	
	
	printf ("O caractere digitado foi: %c \n", Ch1);
	printf ("O número inteiro digitdo foi: %d \n", num1);
	printf ("O número não inteiro digitdo foi: %f \n", num2);
	printf ("O código ASCII referente ao caractere digitado é: %d \n", Ch2); /* Acrescentei em reção ao programa anterior */
		
	
	return (0);	
}

Aqui não consigo inserir o segundo caractere (Ch2). Já tentei de várias formas e nada. Alguém sabe me dizer onde estou errando por favor?

Desde já agradeço.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

O que é "reção" (digitado várias vezes) ? Qual mensagem do compilador? você entra como %c e quer imprimir como %d de propósito?

 

Ah.. e quando aprender ponteiros, vetores, struct, union...  vê se me ensina pois até hoje estas entidades mais sinistras me dão pesadelo 😁

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

50 minutos atrás, Luiz Castelo disse:

Se trabalho com windows tenho a biblioteca conio.h para trabalhar com caracteres

 

Isso não tem nada a ver com o Windows. E tem uma 6 dúzia de funções e de pouco serve desde os anos 80 quando veio do Apple II. E no Windows vinha com o Turbo C da Borland hoje Embarcadero em dois disquetes de 1.2 megabyte. Dá pra imaginar que o mundo mudou nesse tempo. Para gravar uma foto de alta resolução no celular hoje se precisa de uns 5 discos desses.

 

Não deve usar isso. Mas se precisa porque quer mesmo problemas ou porque perdeu uma aposta então deve ter isso para Linux.

 

53 minutos atrás, Luiz Castelo disse:

Isso quer dizer que se eu desenvolver um código em um sistema operacional ele não roda no outro? Como resolver essa questão e rodar em qualquer plataforma se esse for o caso?

 

Muita gente tem esse sonho. Em geral os programas não são mesmo portáveis. Sempre aparece algo.

 

Se quer portabilidade use java. Pode ser javascript mais aí se pode questionar se o mesmo código roda em todos os navegadores e às vezes não roda.

 

Sobre os programas:

 

56 minutos atrás, Luiz Castelo disse:

iniciar na linguagem C e entender os inteiros, caracteres, floats, etc

 

Se quer aprender essas coisas o que tem isso a ver com um programa interativo? 

 

Pra que um programa interativo? No geral  NUNCA escreva um programa interativo. Só dá problema e não vai aprender nada. No máximo vai aprender a escrever um programa interativo e depois não vai mais fazer isso 😄 

 

Use constantes, leia de arquivos, use funções geradoras de dados.

 

Porque seu programa não funciona direito?

 

LEIA o manual. Não deve usar scanf() para isso, para ler do teclado. Má ideia. scanf() foi escrita para ler entrada formatada: veja o nome: --- scan formatted input era a ideia --- e se quer mesmo usar entenda que scanf() retorna um int e teste'É ingênuo não testar. 

 

E entenda que ler uma letrinha usando `%c` em scanf() é problemático. E entenda, como está no manual, que scanf() pula espaços brancos e TAB e para no ENTER, o tal `\n`.  E você precisa ler esse `\n` depois.

 

Prefira fgets() muito mais simples. :eia a linha toda e pegue as letras de que precisar.

 

1 hora atrás, Luiz Castelo disse:

uma variável a mais e pedir a "mesma coisa" que no programa funcional. Se alguém puder me dizer o motivo de rodar um e não rodar o outro (corretamente) será uma ajuda e tanto

 

a razão é essa. Precisa consumir tudo que foi digitado. scanf() pula espaço em branco e para no ENTER. Leia o manual. Teste o retorno.

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@.if reção era para ser relação kkkk. Digitado errado. Quanto a ponteiros, vetores e principalmente arrays é o que eu mais preciso aprender.

@arfneto Como percebe estou aprendendo do zero e sozinho. Vou quebrar muito a cabeça ainda. Ainda não conheço quase nada. Usei o scanf porque é o que eu conheço.

 

Quanto a interatividade, para o programa futuro que precisarei fazer e que me motivou a aprender um pouco de linguagem C, porque tem que ser em linguagem C, vou precisar de um pouco de interatividade. Não sei se C é o mais ideal para isso mas é o que vou precisar usar, sem opção. Vou ter que me adaptar ao fato e explorar o melhor possível a interatividade dentro da linguagem C.

 

Falando de Linux e Windows, eu odeio Windows, mas foi apenas citado para uma comparação de compatibilidade. Sei que muita coisa que roda em um não roda em outro ambiente ou navegador, mas por ser um problema tão básico eu esperava que poderia ter uma solução de rodar isso nos dois. Mas foi só curiosidade não vou nem tentar rodar no windows. Parei de usar windows em 1997 e parei de verdade, desde então nunca mais mexi em um windows e não me faz a menor falta 🤪.

 

Pode me dizer onde encontro facilmente tal manual para entender scanf e outras coisas importantes? Não estou usando um livro. No máximo uma apostila mega antiga feita pela UFMG. Essas informações não constam na apostila. Me sugere algum material bacana para aprender C?

 

Tenho certeza que esse é o primeiro problemas de muitos que vou enfrentar e que vou chatear muito o pessoal do fórum aqui.

1 hora atrás, .if disse:

O que é "reção" (digitado várias vezes) ? Qual mensagem do compilador? você entra como %c e quer imprimir como %d de propósito?

 

Ah.. e quando aprender ponteiros, vetores, struct, union...  vê se me ensina pois até hoje estas entidades mais sinistras me dão pesadelo 😁

Mensagem do compilador: gcc -Wall -o "012_ler_caracter_da_tela" "012_ler_caracter_da_tela.c"  Compilação terminada com sucesso.

você entra como %c e quer imprimir como %d de propósito? Sim foi de propósito. Quero imprimir %d para ver o código ASCII relativo ao caractere entrado como %c. Se peço só isso para o programa ele faz de boa. O problema é quando uso duas variáveis char ao mesmo tempo. Se duas já deu problema, nem testei com 3 😁.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

33 minutos atrás, Luiz Castelo disse:

Quanto a interatividade, para o programa futuro que precisarei fazer e que me motivou a aprender um pouco de linguagem C, porque tem que ser em linguagem C, vou precisar de um pouco de interatividade

 

C é uma linguagem especial e deve imaginar que não há nada que não possa escrever em C. A linguagem foi escrita para acelerar o desenvolvimento do Unix e o Unix virou Xenix, Solaris, AIX, HP-UX Linux Android e tal... Office foi escrito em C, Windows foi escrito em C, SQLite foi escrito em C, Asterisk foi escrito em C.  VM java foi escrita em C. Python sem C não é nada: todas as bibliotecas importantes ou quase importantes são escritas em C ou em um troço chamado Cython que dá pra imaginar o que é: uma camada de convergência. 

 

Por outro lado, C++ é muito mais expressiva e poderosa e pode ser opção em muitos casos.

 

Talvez eu não tenha me explicado bem: você nunca deve escrever um programa interativo. Foi só o que eu disse. Você escreve suas rotinas, testa tudo e ao final inclui a p. da interatividade. É isso.

 

É o fim ver caras iniciantes em programação escreverem antes de tudo um menu, sendo que nada tem a ver com o programa. Ou iniciantes escreverem um programa para ler 10 valores  e mostrar a média o menor e o maior. E A CADA VEZ que vão testar o programa inventam 10 números e teclam ENTER 10 vezes e tal. É o que estou tentando dizer.

 

Você está tentando entender formatos de dados e representação e tal. Pra que precisa ler isso do teclado? Acabou errando várias vezes em scanf() e printf().

 

33 minutos atrás, Luiz Castelo disse:

Falando de Linux e Windows, eu odeio Windows

 

Essas coisas são só ferramentas. Vai trabalhar com algum sistema ou algum runtime ao menos. Raramente se pode escolher a linguagem hoje em dia, muito menos o sistema, o build system, o IDE... E não gostar sem conhecer é um pouco infantil, com o perdão da expressão.

 

33 minutos atrás, Luiz Castelo disse:

Sei que muita coisa que roda em um não roda em outro ambiente ou navegador

 


O que eu falei sobre o navegador foi por causa da citação (off-topic) de javascript.

 

33 minutos atrás, Luiz Castelo disse:

e parei de verdade, desde então nunca mais mexi em um windows e não me faz a menor falta

 

São muitos empregos e empresas usando Windows. Talvez não deva ignorar. E tem muita coisa no Windows que é melhor que no Linux.

 

33 minutos atrás, Luiz Castelo disse:

Pode me dizer onde encontro facilmente tal manual para entender scanf e outras coisas importantes?

 

Use o teclado. man scanf vai te mostrar muita coisa. Sobre a entrada use man termios e vai entender muita coisa sobre scanf e gets. Pode ver online aqui mas em geral está bem na sua frente. Isso precede a internet e a rede local ethernet.

 

No tempo do Unix praticamente todo mundo que usava o terminal imagino que era um programador também. A documentação está integrada ao sistema. E Linux é apenas uma cópia descarada e dedicada do Unix criada a partir da insatisfação de um cara com o modelo e os custos de licenciamento do Unix da AT&T. E ele Linus se associou a muitos tornando o trem público e assim não foi preso  🙂

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, arfneto disse:

Você está tentando entender formatos de dados e representação e tal. Pra que precisa ler isso do teclado? Acabou errando várias vezes em scanf() e printf().

Estou fazendo isso do teclado porque no programa que vou precisar fazer precisarei fazer pelo teclado essa parte. Já entendi o que faz o int, o float, o char, etc. Por isso estou testando do teclado. Por uma necessidade futura.

1 hora atrás, arfneto disse:

Essas coisas são só ferramentas. Vai trabalhar com algum sistema ou algum runtime ao menos. Raramente se pode escolher a linguagem hoje em dia, muito menos o sistema, o build system, o IDE... E não gostar sem conhecer é um pouco infantil, com o perdão da expressão.

Sobre a expressão de infantilidade talvez realmente seja por você não me conhecer. Não estou não gostando por não conhecer. Não sei sua idade mas eu aprendi mexer em computado ainda apenas no DOS, o Windows veio em seguida, quando falei que não gosto é por ter tido um bom e longo contato com o sistema. Windows não me faz a menor falta desde 1997. Não uso computador para joguinhos e tudo que preciso o Linux me atende mais rápido, mais estável e o tempo que mexo com o Linux me permite ter mais rapidez também.

1 hora atrás, arfneto disse:

São muitos empregos e empresas usando Windows. Talvez não deva ignorar. E tem muita coisa no Windows que é melhor que no Linux.

Não discordo, mas meu foco não é trabalhar para nenhuma empresa. Estou aprendendo a programar para atender as minhas necessidades e não as de uma empresa em específico. Não é meu foco trabalhar como programador e sim desenvolver alguns programas para atender minha área de pesquisa em física experimental.

1 hora atrás, arfneto disse:

Use o teclado. man scanf vai te mostrar muita coisa. Sobre a entrada use man termios e vai entender muita coisa sobre scanf e gets. Pode ver online aqui mas em geral está bem na sua frente. Isso precede a internet e a rede local ethernet.

Com certeza é o que estou fazendo, usando o teclado. Inclusive para pedir ajuda aqui no Fórum. Mas nem só de google vive o conhecimento, por isso perguntei se tinha alguma sugestão de livro, apostila ou coisa assim. Pegar um bom livro pode não ter a quantidade de informação que a internet tem, mas não tem preço que pague o conhecimento contido em um bom livro. Talvez seja minha idade dizendo isso, de um tempo em que a internet não existia e as pessoas, com muito menos acesso a informação do que a geração atual, eram muito mais inteligente que a grande maioria das pessoas atualmente.

 

No fim das contas, vou continuar em busca da solução para o problema do meu código extremamente simples. Resolver problemas simples é tão importante quanto resolver problemas complexos. Não dá para resolver nada complexo sem passar pelo simples antes.

 

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

5 horas atrás, Luiz Castelo disse:

Estou fazendo isso do teclado porque no programa que vou precisar fazer precisarei fazer pelo teclado essa parte. Já entendi o que faz o int, o float, o char, etc. Por isso estou testando do teclado. Por uma necessidade futura.

 

Eu entendi. O que eu disse antes e antes é que não precisa fazer isto enquanto o RESTO do programa não estiver funcionando

 

5 horas atrás, Luiz Castelo disse:

E não gostar sem conhecer é um pouco infantil, com o perdão da expressão

 

5 horas atrás, Luiz Castelo disse:

Sobre a expressão de infantilidade talvez realmente seja por você não me conhecer. Não estou não gostando por não conhecer. Não sei sua idade mas eu aprendi mexer em computado ainda apenas no DOS, o Windows veio em seguida, quando falei que não gosto é por ter tido um bom e longo contato com o sistema. Windows não me faz a menor falta desde 1997. Não uso computador para joguinhos e tudo que preciso o Linux me atende mais rápido, mais estável e o tempo que mexo com o Linux me permite ter mais rapidez também

 

Entre a minha expressão e sua reação entenda que até me desculpei previamente se o que eu disse parecesse pessoal. Mas acho que não adiantou. Entenda: o que tentei dizer é que muitas vezes é como o cara de 20 anos que odeia ervilhas mas nunca comeu nenhuma.

 

Embora tenha escrito uma resposta pessoal o forum é público e eu optei por deixar uma mensagem genérica. Nada pessoal. Sua resposta no entanto foi pessoal 😞 e não gostei. 

 

 

 

 

 

image.png.061743add3946d6a2107901c07eb5003.png

 

 

Não estou julgando sua experiência ou idade. Pode ter 12 ou 21 ou 121 anos. Eu passei dos 12 mas não é importante. Só escrevo para ajudar quando tenho tempo.

 

5 horas atrás, Luiz Castelo disse:

Mas nem só de google vive o conhecimento, por isso perguntei se tinha alguma sugestão de livro, apostila ou coisa assim. Pegar um bom livro pode não ter a quantidade de informação que a internet tem, mas não tem preço que pague o conhecimento contido em um bom livro. Talvez seja minha idade dizendo isso, de um tempo em que a internet não existia e as pessoas, com muito menos acesso a informação do que a geração atual, eram muito mais inteligente que a grande maioria das pessoas atualmente.

 

Talvez não tenha então lido o que eu escrevi. 

 

Vou repetir: não precisa de Google, Bing ou livros para esse particular caso. Entenda que Unix e C nasceram juntos. Ken Thompson, Dennis Ritchie e Brian Kernighan tinham salas adjacentes e usavam o mesmo PDP11/45 onde foi praticamente criado o Unix o C e a stdlib. Seria você  contemporâneo da juventude de um PDP11/45, moderno no início dos anos 80?

 

USE man termios e não precisa de internet. Leia tudo que tem lá. São poucas páginas. Se quer fazer algo sério para seu uso vai precisar daquilo.

 

Escreva uns programas. Chame tcgetattr() por exemplo e veja o que volta.

 

USE man scanf() e leia o que tem la

 

USE man fgets

 

NO SEU TERMINAL. Não precisa de internet. Isso é Unix e precede a internet. Naquele tempo imagino que todo mundo que praticamente todo mundo que tinha acesso a um terminal sabia e precisava programar. 

 

E Linux é Unix. Android é Unix. MacOS é Unix. E Windows inclui um kernel novinho de Unix há uns anos também --- WSL 1 e 2 e pode baixar distribuições como Ubuntu, Debian, Fedora, SUSE e Kali com um click e de graça e rodam nativas com o kernel Linux incluído no Windows.

 

 

5 horas atrás, Luiz Castelo disse:

No fim das contas, vou continuar em busca da solução para o problema do meu código extremamente simples. Resolver problemas simples é tão importante quanto resolver problemas complexos. Não dá para resolver nada complexo sem passar pelo simples antes

 

Atente para o que eu escrevi: é um roteiro para você entender as coisas que quer usar. e use o terminal. 

 

E pode usar esse forum. Sempre tem alguém pra ajudar e tem gente com experiência frequentando.

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Luiz Castelo Quase todo dia alguém posta a mesma dúvida que você postou, e o que acontece é que quando você digita o primeiro caractere e pressiona Enter o caractere é lido e armazenado em Ch1, mas qualque coisa que tenha sido passada a mais, inclusive o símbolo de fim de dados quando você pressiona Enter, permanece no buffer e acaba sendo automaticamente lido para Ch2 na leitura do segundo char.

 

O jeito mais simples é substituir

scanf  ("%c", &Ch1);

por

scanf  ("%c%*c", &Ch1);

para descartar o símbolo de fim de dados.

 

Existem outras formas de se resolver esse problema, e caso o programa vá ser distribuido para outras pessoas, seria bastante adequado verificar a validade dos dados e tratar erros, mas como início de aprendizado não parece ser necessario ainda.

 

Pessoalemte acho que seria mais adequado aprender logo C++ no lugar de C, a principal vantagem nesse caso é que a linguagem C++ já possui recursos como listas, pilhas e mapas já implementados, e você não vai perder tempo reinventando e testando a roda.

 

Bons livros sobre C++ em minha opinião pessoal:

 

Discovering Modern C++ - An Intensive Course for Scientists, Engineers, and Programmers
Peter Gottschling

 

C++ How to Program
Paul Deitel e Harvey Deitel

 

Beginning C++20 - From Novice to Professional
Ivor Horton, Peter Van Weert

 

Livros sobre C :

 

Beginning C - From Beginner to Pro
Ivor Horton, German Gonzalez-Morris

 

C How to Program
Paul Deitel e Harvey Deitel

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

5 horas atrás, arfneto disse:

 

Eu entendi. O que eu disse antes e antes é que não precisa fazer isto enquanto o RESTO do programa não estiver funcionando

 

 

 

Entre a minha expressão e sua reação entenda que até me desculpei previamente se o que eu disse parecesse pessoal. Mas acho que não adiantou. Entenda: o que tentei dizer é que muitas vezes é como o cara de 20 anos que odeia ervilhas mas nunca comeu nenhuma.

 

Embora tenha escrito uma resposta pessoal o forum é público e eu optei por deixar uma mensagem genérica. Nada pessoal. Sua resposta no entanto foi pessoal 😞 e não gostei. 

 

 

 

 

 

image.png.061743add3946d6a2107901c07eb5003.png

 

 

Não estou julgando sua experiência ou idade. Pode ter 12 ou 21 ou 121 anos. Eu passei dos 12 mas não é importante. Só escrevo para ajudar quando tenho tempo.

 

 

Talvez não tenha então lido o que eu escrevi. 

 

Vou repetir: não precisa de Google, Bing ou livros para esse particular caso. Entenda que Unix e C nasceram juntos. Ken Thompson, Dennis Ritchie e Brian Kernighan tinham salas adjacentes e usavam o mesmo PDP11/45 onde foi praticamente criado o Unix o C e a stdlib. Seria você  contemporâneo da juventude de um PDP11/45, moderno no início dos anos 80?

 

USE man termios e não precisa de internet. Leia tudo que tem lá. São poucas páginas. Se quer fazer algo sério para seu uso vai precisar daquilo.

 

Escreva uns programas. Chame tcgetattr() por exemplo e veja o que volta.

 

USE man scanf() e leia o que tem la

 

USE man fgets

 

NO SEU TERMINAL. Não precisa de internet. Isso é Unix e precede a internet. Naquele tempo imagino que todo mundo que praticamente todo mundo que tinha acesso a um terminal sabia e precisava programar. 

 

E Linux é Unix. Android é Unix. MacOS é Unix. E Windows inclui um kernel novinho de Unix há uns anos também --- WSL 1 e 2 e pode baixar distribuições como Ubuntu, Debian, Fedora, SUSE e Kali com um click e de graça e rodam nativas com o kernel Linux incluído no Windows.

 

 

 

Atente para o que eu escrevi: é um roteiro para você entender as coisas que quer usar. e use o terminal. 

 

E pode usar esse forum. Sempre tem alguém pra ajudar e tem gente com experiência frequentando.

 

 

Bom dia meu caro. Peço desculpas também pela forma que escrevi. Saiba que estou seguindo sim suas dicas, todas as dicas são muito bem vindas, se não funcionar eu com certeza vou aprender algo com elas. E pode ter certeza que já aprendi um monte de coisinhas com as suas em apenas um dia. Dicas sempre serão bem vindas e te agradeço de verdade por isso.

34 minutos atrás, JorgeGus disse:

@Luiz Castelo Quase todo dia alguém posta a mesma dúvida que você postou, e o que acontece é que quando você digita o primeiro caractere e pressiona Enter o caractere é lido e armazenado em Ch1, mas qualque coisa que tenha sido passada a mais, inclusive o símbolo de fim de dados quando você pressiona Enter, permanece no buffer e acaba sendo automaticamente lido para Ch2 na leitura do segundo char.

 

O jeito mais simples é substituir

scanf  ("%c", &Ch1);

por

scanf  ("%c%*c", &Ch1);

para descartar o símbolo de fim de dados.

 

Existem outras formas de se resolver esse problema, e caso o programa vá ser distribuido para outras pessoas, seria bastante adequado verificar a validade dos dados e tratar erros, mas como início de aprendizado não parece ser necessario ainda.

 

Pessoalemte acho que seria mais adequado aprender logo C++ no lugar de C, a principal vantagem nesse caso é que a linguagem C++ já possui recursos como listas, pilhas e mapas já implementados, e você não vai perder tempo reinventando e testando a roda.

 

Bons livros sobre C++ em minha opinião pessoal:

 

Discovering Modern C++ - An Intensive Course for Scientists, Engineers, and Programmers
Peter Gottschling

 

C++ How to Program
Paul Deitel e Harvey Deitel

 

Beginning C++20 - From Novice to Professional
Ivor Horton, Peter Van Weert

 

Livros sobre C :

 

Beginning C - From Beginner to Pro
Ivor Horton, German Gonzalez-Morris

 

C How to Program
Paul Deitel e Harvey Deitel

Jorge, muito bom dia. Funcionou perfeitamente e entendi demais o %*c.

 

O programa não tem intuito de ser distribuído não. Não trabalho e (apesar de não dizer nunca) não pretendo trabalhar com programação. É para meu aprendizado e para resolver alguns problemas sobre Física e Física experimental que são meus campos de estudo.

 

Estou focando no C pelo motivo que vou usar bastante o Arduino que é uma linguagem C muito mal disfarçada (é quase uma cópia descarada). Para a parte teórica até Fortran me serve muito bem, mas para usar no Arduino, me corrija se eu estiver errado, o ideal é C mesmo.

 

Muito obrigado pelo seu tempo e pela dica dos livros, com certeza levarei em consideração.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Luiz Castelo Não entendo nada sobre o Aduino, mas acho que o livro " C How to Program" que citei parece ser uma boa opção, atualmente está na 9ª edição, é um livro bastante didático e com muitos exercícios, mas não tem a pretenção de formar programadores para trabalhar na Microsoft, Oracle ou Nasa.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@JorgeGus Perfeito. Tb não tenho essa pretensão 😁. Mas sou chato com estudo, então é certeza que vou querer cada dia mais.

Quanto ao arduino eu tb não busco usar isso como fonte de renda, mas vai ser uma mão na roda para atender minhas necessidades em física experimental.

Obrigado mais uma vez.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
3 horas atrás, Luiz Castelo disse:

entendi demais o %*c.

Eu não kk . És um privilegiado. Neste caso entra conceito que lhe mencionei ... relativamente avançado [pra minha idade] 😁.

De fato a ide arduina é um C com libs mastigadas relacionadas ao hw dele. Neste caso o assunto (e forum) é outro e a dica que dou é entenda 1 pouco de eletrônica e sobre o mc do arduino - geralmente da familia atmega.

Também desconheço c++ para mc's. O que não nos impede de algum dia pesquisar sobre...

Sucessos!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!