dando quando vou compilar em c(solucionado)

Iniciado por miltonvizi, 15 de Dezembro de 2010, 11:30

tópico anterior - próximo tópico

miltonvizi

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);

 
 

}

RonaldoRG

A sintaxe do printf tá errada.
O correto é:
printf("%s", str_a);

Dá uma olhada: http://www.cplusplus.com/reference/clibrary/cstdio/printf/

T+.
Ubuntu 12.04

fpissarra

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".

miltonvizi


RonaldoRG

Coloque o ícone Solucionado no seu tópico.
T+
Ubuntu 12.04