Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: miltonvizi em 15 de Dezembro de 2010, 11:30

Título: dando quando vou compilar em c(solucionado)
Enviado por: miltonvizi em 15 de Dezembro de 2010, 11:30
estou usando ubuntu 10.04 e para programar em c uso o gedit e o gcc para compilar meus programas mas estou tendo alguns problemas na hora de compilar

quando eu uso o printf da esse erro
char_array.c: In function ‘main’:
char_array.c:23: warning: format not a string literal and no format arguments

mas se eu troco o printf pelo puts ele da certo

o que sera me ajudem !!!!!!!!!!!!!!!!


o programa é esse

#include <stdio.h>


int main ()
{
   char str_a[20];
   str_a[0] = 'H';
   str_a[1] = 'e';
   str_a[2] = 'l';
   str_a[3] = 'l';
   str_a[4] = 'o';
   str_a[5] = ',';
   str_a[6] = ' ';
   str_a[7] = 'W';
   str_a[8] = 'o';
   str_a[9] = 'r';
   str_a[10] = 'l';
   str_a[11] = 'd';
   str_a[12] = '!';
   str_a[13] = '\n';
   str_a[14] = 0;

   printf (str_a);

  
  

}
Título: Re: dando quando vou compilar em c
Enviado por: RonaldoRG em 15 de Dezembro de 2010, 19:07
A sintaxe do printf tá errada.
O correto é:
Código: [Selecionar]
printf("%s", str_a);
Dá uma olhada: http://www.cplusplus.com/reference/clibrary/cstdio/printf/

T+.
Título: Re: dando quando vou compilar em c
Enviado por: fpissarra em 15 de Dezembro de 2010, 21:16
Seu código não está "errado". O que o compilador está fazendo é te avisar que provavelmente este não é o jeito tradicional de usar printf():

char_array.c: In function ‘main’:
char_array.c:23: warning: format not a string literal and no format arguments


Note o "warning"...

Como RonaldoRG falou, printf() espera por uma string de formatação ANTES da string que será "impressa".
Título: Re: dando quando vou compilar em c
Enviado por: miltonvizi em 16 de Dezembro de 2010, 07:50
obrigado ajudou muito ^^
Título: Re: dando quando vou compilar em c
Enviado por: RonaldoRG em 16 de Dezembro de 2010, 09:39
Coloque o ícone Solucionado no seu tópico.
T+