• Domingo 15 de Diciembre de 2024, 07:05

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - jorgemela

Páginas: [1]
1
C/C++ / dudas con ejercicio
« en: Lunes 20 de Diciembre de 2010, 20:17 »
hola, mi nombre es Jorge y soy estudiante de ingenieria informatica, primero decir que soy bastante novato en el tema, alla va el ejercicio:

Este ejercicio trata de realizar un script denominado bocabajo en C que coja un fichero y le de la vuelta de manera que las lineas que habia escritas en él queden la primera la ultima, la segunda la penultima y asi sucesivamente, es decir, un ejemplo seria el siguiente:

cat fich1
uno
dos
tres
cuatro

./bocabajo fich1
cuatro
tres
dos
uno

eso es lo que debe realizar el script, y se supone que hemos de utilizar memoria dinamica, al no saber muy bien como va el tema de memoria dinamica, estoy haciendo el script primero sin utilizar memoria dinamica para ver si consigo hacerlo y me da error de segmentacion, tras un tiempo pensando se me ocurrio que podria crear un array bidimensional(se me olvido mencionar, cada linea de fichero tiene un maximo de 2048 caracteres), y mientras voy leyendo las lineas del fichero, ir guardandolas en  este array, y luego imprimir el array desde la ultima posicion hasta la primera, el problema es que no estoy muy familiarizado con arrays bidimensionales y tengo lagunas tambien con punteros, asique aqui adjunto mi codigo de lo que he hecho, y a ver si alguien me puede echar una mano, gracias de antemano :):


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/////////PROGRAMA PRINCIPAL/////////

int main(int argc, char* argv[]){
 
 
//declaracion parametros a usar//
FILE *pm;
char lineafile [2048];
char linea [100][2048];///lo he puesto para un maximo de 100 lineas al no usar memoria dinamica de momento
int n;
int c;
pm = fopen(stdin,"rt");
while(fgets(lineafile,2048,pm)!=NULL){
for(n=0;n<=2048; ++n){
strcpy(linea[n],lineafile);
}
}
for(c=2048;c>=0;--c){
printf("%sn",linea[c]);
}
fclose(pm);
}

Páginas: [1]