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: [EMAIL PROTECTED]:~/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 [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] >

