Programación General > C/C++

 como puedo concatenar la salida de un archivo

<< < (2/3) > >>

chenech:
Hola, es que así das por echo un número de líneas y un número de letras por palabra, si cambias el for por un while, por ejemplo así: "while(fgets(cCadena, 70, fpFichero) != NULL)", lees hasta el final del fichero y no condicionas a saber el número de líneas de antemano. Cambia 70 por el máximo número de caracteres que puede tener una línea y la definición de cCadena también.
Espero poder haberte ayudado.
Un saludo.

ccgt:
ahora como puedo almacenar todo el contenido de un fichero en solo un string

chenech:
Para leer todo el contenido de un fichero en un solo string, te defines un puntero char por ejemplo y lees hasta el final del fichero con getc y vas añadiendo hasta que sea NULL, que querrá decir que has llegado al final, pon la apertura del fichero y el bucle while al siguiente código, si no sabes la longuitud puedes usar un campo string si no, un char definiendo el tamaño máximo, pero entonces tendrás que comprobar en el while que sea NULL o que se haya alcanzado el tamaño máximo para evitar un desbordamento:

definir cadena: string sCadena;
definir char para leer caracter a caracter: char c;
Abrir fichero
while mientras no sea NULL
Leeer caracter a caracter: c = getc (pfArchivo);
Asignar a la cadena, ir añadiendo: sCadena = sCadena + c;

Un saludo.

ccgt:
ya logre guardar el contenido del fichero en un array como una cadena
pero ahora con strtok segun tengo entendido divide o delimita esa cadena segun el "delimitador" que queramos, y yo lo quiero tokenizar por los espacios en blanco y ya lo he hecho , es decir cada palabra la converti en una cadena ya que eso hace strtok cierto le agrega al final \0 de la palabra tokenizada,  pero ahora lo que necesito en guardar esa cadenas en un array como lo hago

segun entiendo las puedo guarda en un char * arreglo[numero de cadenas que almacena];  como lo hago

void main()
{
char entrada[100] ;
   char s2[4] = " \n\t";
   char *ptr; int i=0;
   char *copia[aqui pienso almacenar las cadenas separadas con strtok ];
char c;
FILE *fp=fopen("ard.txt", "r");
while((c=fgetc(fp))!=EOF){
entrada[i++]=c;
}
entrada='\0';
 ptr = strtok( entrada, s2 );    // Primera llamada => Primer token
   printf( "%s\n", ptr );
   while( (ptr = strtok( NULL, s2 )) != NULL )    // Posteriores llamadas
     printf( "%s\n", ptr );


}

chenech:
No se exactamente lo que quieres pero creo entender que es las palabras ya separadas tenerlas en un array para acdeder a ellas de una en una. Yo lo que haría es crear un array de dos dimensiones, por ejemplo definiendo así un char:

char cPalabras[10][100]

Sería para 10 palabras de un máximo de 100 caracteres cada una.
cPalabra[0] sería para la primera, [1] la segunda, etc.
Creas una variable int y le vas sumando en cada paso por el bucle:

i++
cPalabra

Y se la vas asignando en el bucle una palabra a cada paso por la misma sumando 1 a i.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa