Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2012, 18:17
adalsuper
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta Programa en C que añade a una cadena las lineas metidas

Muy buenas,
estaba haciendo un programa en C que me coja lineas por teclado y las añada a una cadena con todas las lineas. el problema es que no me funciona pues me coje los caracteres que le apetecen. he probado con scanf "%s" y sale lo mismo y ya no sé que hacer


Código C:
Ver original
  1. /*prototipos*/
  2. void limpiaBuffer(void);
  3.  
  4. int main(){
  5.   int j;
  6.   char c;
  7.   char linea[MAX],cadena[MAX];
  8.  
  9.   printf("Introduce cadenas hasta introducir una cadena vacia:\n");
  10.  
  11.   do{
  12.     limpiaBuffer();
  13.     scanf("%c",&c);     //coge caracter
  14.  
  15.     for(j=0; j<MAX && c!='\n'; ++j){
  16.       linea[j] = c;
  17.       scanf("%c",&c);       //coge caracter
  18.     }
  19.  
  20.    // printf("cadena: %s\n",linea);
  21.  
  22.     for(j=0; j<MAX && linea[j]!='\0';++j)
  23.       cadena[j] = linea[j];     //copia cadena, no cuenta \0
  24.     strcat(cadena,linea);
  25.    
  26.   }while(c!= '\n' );
  27.  
  28.  // cadena[j] = '\0';
  29.  
  30.  
  31.   printf("cadena total:\n %s\n",cadena);
  32.  
  33.   return 0;
  34. }
  35.  
  36. void limpiaBuffer(void){
  37.   char c;
  38.   do{
  39.     c = getchar();
  40.   }while(c != '\n');
  41. }