Re: programação em C
On Thu, Jul 05, 2001 at 02:42:34AM -0300, Death Angel wrote:
> ola, agradeço a atenção em relação a msg anterior.
>
> como ja disse comecei a estudar linguagem C, e logo no começo
> do livro encontrei um programa que naum funciona, o livro eh
> "C A linguagem de programação" de Brian W. Kernighan & Dennis M. Ritchie, se
> naum for um bom livro me avisem.
Bem, estou com um livro igual a esse, ele não é ruim, apenas meio desatualizado, e de inicio como o próprio autor diz um pouco complexo, mas apartir do Cap. II fica mais amigavel(pois o primeiro faz uma abordagem geral do C).
Se servir de sugestão comece por:
http://ead1.eee.ufmg.br/cursos/C/
É bem interessante esse curso, para iniciantes em C, e aborda Linux.
>
> o prama eh minusculo, como ja foi dito o erro foi no começo do livro
> ele conta caracteres.
>
> /*aqui esta o fonte*/
>
> main ()
> {
> long nc;
>
> nc = 0;
> while (getchar () != EOF)
> ++ nc
> printf ("%|d\n", nc);
> }
>
Quanto a código acima, podem estar ocorrendo dois erros:
1o - falta um ;(ponto e virgula) depois do ++ nc, entre o ++ e o nc tem um espaço e vc está usando um i maiusculo(I) ao inves de um l minusculo(l), pois o l é de long da qual vc declarou a variavel nc.
- O correto seria:
++nc;
printf ("%ld\n", nc);
2o - (mas como o erro anterior nao ocorre no livro, acredito que vc tenho cometido na hora de enviar o mail para lista), pode ser o seguinte (O qual tive aqui).
- Na hoara de compilar aparece a seguinte msg:
mello@axl:~/programacao/learn$ gcc teste.c
teste.c: In function `main':
teste.c:6: `EOF' undeclared (first use in this function)
teste.c:6: (Each undeclared identifier is reported only once
teste.c:6: for each function it appears in.)
O compilador informa que 'EOF' nao foi declarado.
O 'EOF' indica o fim de arquivo, e ele faz parte do cabecalho 'stdio.h', o qual o autor nao declara (nao sei pq). Isso ocorre em todos os exemplos do livro, por isso achei o mesmo desatualizado.
Tudo bem, mas para resolver o problema basta incluir o cabeçalho 'stdio.h' no inicio do programa, e no final o código correto ficaria assim:
#include <stdio.h>
main ()
{
long nc;
nc = 0;
while (getchar () != EOF)
++nc;
printf ("%ld\n", nc);
}
PS: Depois de executar o programa, use CTRL+D para terminalo, assim o 'EOF' passa a ser verdadeiro e é terminado o whlile.
> eh acho que receberei uma resposta logo, visto que o programa eh
> muito simples.
Espero nao ter demorado :).
>
> muito obrigado pela ajuda.
>
Se valer, de nada!
>
>
>
> --
> To UNSUBSCRIBE, email to debian-user-portuguese-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
Reply to: