<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Centro de estudios en internet - Aprendo en casa &#187; consola</title>
	<atom:link href="http://www.aprendoencasa.com/index.php/tag/consola/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aprendoencasa.com</link>
	<description>Centro de estudios online con cursos gratuitos de internet, sistemas, diseño, web, programación, xhtml, windows, etc.</description>
	<lastBuildDate>Tue, 01 Jun 2010 19:57:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Ejercicios y practicas resueltas de C ( 4 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 22:37:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/</guid>
		<description><![CDATA[Otro nuevo ejercicio de c para seguir el curso de teleformacion y así poder practicas con ejemplos uno de tus lenguajes de programación favorito. Enunciado del ejercicio: Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de destino o final ha de tener el contenido del primero [...]]]></description>
			<content:encoded><![CDATA[<p>Otro nuevo ejercicio de c para seguir el curso de teleformacion y así poder practicas con ejemplos uno de tus lenguajes de programación favorito.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
</p>
<blockquote><p>Enunciado del ejercicio:</p>
<p>Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de destino o final ha de tener el contenido del primero u origen pero al revés ), en vez de solicitar los nombres de archivos en el programa se utiliza la línea de parámetros como si de una orden de linux o ms-dos se tratara. Se utiliza para leer y grabar las funciones fread y fwrite, realizando una reserva de memoria dinámica con la función malloc, y la función free para liberar la memoria utilizada. El ejercicio se ha realizado utilizando el editor Code Blocks bajo Windows 7 y probado en la consola de comandos de Windows 7.</p></blockquote>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/><br />
El ejercicio resuelto es el siguiente:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

// Predefinición de funciones

int Existe(char *);
long int Tamanyo(char *);

// Función principal

int main(int argc,char *argv[])
{
    // Comprobación del numero de parámetros recibido
    if(argc!=3) {
        printf("\n¡Faltan parámetros");
        printf("\nFormato: comando fichero_origen fichero_destino");
        exit(1);
    }

    // Comprobación de ficheros
    if(Existe(argv[1])==1) {
        printf("\nEl fichero de origen no se ha encontrado o no existe...");
        exit(1);
    }

    // Declaración de variables necesarias
    FILE *fichero;
    long int cuantos;
    char *reserva=NULL;
    int contador;

    // Abrir archivo en modo lectura
    fichero=fopen(argv[1],"rt");
    // Averiguar el tamaño del archivo
    cuantos=Tamanyo(argv[1]);
    // Realizar la reserva de memoria correspondiente al tamanyo del fichero
    reserva=(char *)malloc(sizeof(char)*cuantos);
    // leer el archivo completo y almacenarlo en la variable reserva
    fread(reserva,sizeof(char),cuantos,fichero);
    // Cerrar fichero de origen
    fclose(fichero);
    // abrir archivo destino
    fichero=fopen(argv[2],"wt");
    // en caso de error devolver error y salir
    if(!fichero) {
        printf("\nNo se ha podido crear el archivo destino...");
        exit(1);
    }
    // si no existe error recorrer el vector creado en orden inverso
    // y almacenarlo en el archivo destino
    printf("\nInvertir archivo");
    for(contador=cuantos;contador&gt;=0;contador--)
    {
        fwrite(&amp;reserva[contador],sizeof(char),1,fichero);
        printf(".");
    }
    // cerrar el archivo destino
    fclose(fichero);
    // finalizar programa
    printf("Ok\n");
    // Liberar memoria
    free(reserva);
    return 0;
}

// Función Existe

int Existe(char *nombre_fichero)
{
    FILE *fichero;
    int resultado=0;  // 0 = existe 1 = no existe

    fichero=fopen(nombre_fichero,"rt");
    if(fichero!=NULL) {
        fclose(fichero);
    } else {
        resultado=1;
    }
    return resultado;
}

// Función contador

long int Tamanyo(char *nombre_fichero)
{
    FILE *fichero;
    long int contador=0;
    char caracter=0;

    fichero=fopen(nombre_fichero,"rt");
    fread(&amp;caracter,1,sizeof(caracter),fichero);
    while(!feof(fichero))
    {
        contador++;
        fread(&amp;caracter,1,sizeof(caracter),fichero);
    }
    fclose(fichero);
    return contador;
}</pre>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1d3dab55-2cb3-4b4e-8bde-55d35951f8cd" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/soluciones">soluciones</a>,<a rel="tag" href="http://technorati.com/tags/practicas">practicas</a>,<a rel="tag" href="http://technorati.com/tags/ejercicios">ejercicios</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/teleformacion">teleformacion</a>,<a rel="tag" href="http://technorati.com/tags/online">online</a>,<a rel="tag" href="http://technorati.com/tags/consola">consola</a>,<a rel="tag" href="http://technorati.com/tags/programacion">programacion</a></div>
<p><br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "6190361313";
google_ad_width = 468;
google_ad_height = 15;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
	</channel>
</rss>
