Warning: The magic method Slickr_Flickr_Plugin::__wakeup() must have public visibility in /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php on line 152

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831
{"id":14067,"date":"2015-05-06T17:08:22","date_gmt":"2015-05-06T22:08:22","guid":{"rendered":"https:\/\/oswaldouliel.withknown.com\/2015\/mastery-28---reading-and-writing-of-files-in-c"},"modified":"2015-05-06T17:08:22","modified_gmt":"2015-05-06T22:08:22","slug":"mastery-28-reading-and-writing-of-files-in-c","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc101winter2015\/2015\/mastery-28-reading-and-writing-of-files-in-c\/","title":{"rendered":"#Mastery 28 – Reading and writing of files in C++"},"content":{"rendered":"
\n

Manejo de archivos en c++<\/h2>\n

Para manejar archivos dentro de c++ tenemos que utilizar el archivo de cabecera fstream.h. Este define las clases ifstream, ostream y fstream para poder realizar operaciones de lectura, escritura y lectura\/escritura en archivos respectivamente. Para trabajar con archivos se tienen que crear objetos de \u00e9stas clases, seg\u00fan las operaciones que deseamos efectuar. Iniciaremos con las operaciones de escritura, para esto tenemos que declarar un objeto de la clase ofstream, despu\u00e9s utilizaremos la funci\u00f3n miembro open para abrir el archivo, escribimos en el archivo los datos que sean necesarios utilizando el operador de inserci\u00f3n y por \u00faltimo cerramos el archivo por medio de la funci\u00f3n miembro close, como podemos ver en el siguiente ejemplo:<\/p>\n

#ff8000; background-color: #fafafa;”>#include<\/a>\u00a0<\/p>\n

<\/fstream.h><\/span>int\u00a0main<\/span>()
{
\u00a0\u00a0\u00a0\u00a0<\/span>ofstream\u00a0archivo<\/span>;\u00a0\u00a0<\/span>#ff8000; background-color: #fafafa;”>\/\/\u00a0objeto\u00a0de\u00a0la\u00a0clase\u00a0ofstream<\/p>\n

\u00a0\u00a0\u00a0\u00a0<\/span>archivo<\/span>.<\/span>open<\/span>(<\/span>#dd0000; background-color: #fafafa;”>”datos.txt”<\/span>);<\/p>\n

\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”Primera\u00a0l\u00ednea\u00a0de\u00a0texto”\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”Segunda\u00a0l\u00ednea\u00a0de\u00a0texto”\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”\u00daltima\u00a0l\u00ednea\u00a0de\u00a0texto”\u00a0<\/span>endl<\/span>;<\/p>\n

\u00a0\u00a0\u00a0\u00a0<\/span>archivo<\/span>.<\/span>close<\/span>();
\u00a0\u00a0\u00a0\u00a0return\u00a0<\/span>0<\/span>;
}\u00a0<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n

En el programa se ha creado un objeto de la clase\u00a0<\/span>ofstream<\/span>\u00a0llamado archivo, posteriormente se utiliza la funci\u00f3n miembro\u00a0<\/span>open<\/span>\u00a0para abrir el arcivo especificado en la cadena de texto que se encuentra dentro del par\u00e9ntesis de la funci\u00f3n. Podemos invocar a la funci\u00f3n constructora de clase de tal manera que el archivo tambi\u00e9n se puede abrir utilizando la siguiente instrucci\u00f3n:<\/span>

<\/p>\n\n\n\n
\n\n\n\n\n
\u00a0<\/td>\n<\/tr>\n
#d1d7dc; font-stretch: normal; line-height: 1.5; font-family: Arial, Arial, sans-serif; color: #006600; background: #fafafa;”>ofstream\u00a0archivo<\/span>(<\/span>#dd0000;\">\"datos.txt\"<\/span>);\u00a0\u00a0<\/span>#ff8000;\">\/\/\u00a0constructora\u00a0de\u00a0ofstream\u00a0<\/span><\/span><\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n



Al\u00a0utilizar la funci\u00f3n constructora no es necesario utilizar la funci\u00f3n miembro\u00a0<\/span>open.<\/span>\u00a0De la misma forma que se utilizan manipuladores de salida para modificar la presentaci\u00f3n en pantalla de los datos del programa,es posible utilizar \u00e9stos manipuladores al escribir datos en un archivo como lo demuestra el programa\u00a0<\/span>archiv02.cpp<\/span>, observe que se utiliza un constructor para crear y abrir el archivo llamado\u00a0<\/span>Datos.txt<\/span>:<\/span><\/p>\n

#ff8000; background-color: #fafafa;”>#include<\/a>\u00a0
#include<\/a>\u00a0
#include<\/a>\u00a0<\/p>\n

<\/iomanip.h><\/fstream.h><\/iostream.h><\/span>int\u00a0main<\/span>()
{
\u00a0\u00a0\u00a0\u00a0<\/span>ofstream\u00a0archivo<\/span>(<\/span>#dd0000; background-color: #fafafa;”>”Datos.txt”<\/span>);\u00a0\u00a0<\/span>#ff8000; background-color: #fafafa;”>\/\/\u00a0constructor\u00a0de\u00a0ofstream
\u00a0\u00a0\u00a0\u00a0<\/span>int\u00a0numero<\/span>;
\u00a0\u00a0\u00a0\u00a0
\u00a0\u00a0\u00a0\u00a0<\/span>cout\u00a0<\/span>#dd0000; background-color: #fafafa;”>”Introduzca\u00a0un\u00a0numero:”\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0<\/span>cin\u00a0<\/span>>>\u00a0<\/span>numero<\/span>;
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”El\u00a0valor\u00a0introducido\u00a0en\u00a0base\u00a010\u00a0es:\u00a0”\u00a0<\/span>numero\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>dec<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>oct<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”en\u00a0base\u00a0octal\u00a0es:\u00a0”\u00a0<\/span>numero\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>oct<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>hex<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”y\u00a0en\u00a0base\u00a0hexadecimal\u00a0es:\u00a0”\u00a0<\/span>numero\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>uppercase<\/span>|<\/span>ios<\/span>::<\/span>showbase<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”utilizando\u00a0los\u00a0manipuladores\u00a0uppercase\u00a0y\u00a0showbase”\u00a0<\/span>
#dd0000; background-color: #fafafa;”>”\u00a0el\u00a0valor\u00a0es:\u00a0”\u00a0<\/span>numero\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>uppercase<\/span>|<\/span>ios<\/span>::<\/span>showbase<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>hex<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>showpos<\/span>|<\/span>ios<\/span>::<\/span>showpoint<\/span>|<\/span>ios<\/span>::<\/span>fixed<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”Utilizando\u00a0los\u00a0manipuladores\u00a0showpos,”\u00a0<\/span>#dd0000; background-color: #fafafa;”>”\u00a0showpoint\u00a0y\u00a0fixed:\u00a0”\u00a0<\/span>numero\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>showpos<\/span>|<\/span>ios<\/span>::<\/span>showpoint<\/span>|<\/span>ios<\/span>::<\/span>fixed<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>archivo\u00a0<\/span>#dd0000; background-color: #fafafa;”>”Finalmente\u00a0el\u00a0valor\u00a0es\u00a0”\u00a0<\/span>numero\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0
\u00a0\u00a0\u00a0\u00a0<\/span>archivo<\/span>.<\/span>close<\/span>();<\/p>\n

\u00a0\u00a0\u00a0\u00a0return\u00a0<\/span>0<\/span>;
}\u00a0<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n

\u00a0<\/p>\n

Operaciones de lectura de archivos\u00a0<\/strong>
Para abrir un archivo y realizar operaciones de lectura se crea un objeto de la clase\u00a0<\/span>ifstream<\/span>\u00a0y se procede pr\u00e1cticamente de la misma forma que lo expuesto en el apartado anterior. Despu\u00e9s de abrir el archivo se puede leer su contenido utilizando las funciones miembro de la clase ifstream o bi\u00e9n el operador de extracci\u00f3n. Cuando se lee un archivo, por lo general se empieza al principio del mismo y se leer\u00e1 su contenido hasta que se encuentre el final del archivo. Para determinar si se ha llegado al final del archivo se puede utilizar la funci\u00f3n miembro\u00a0<\/span>eof<\/span>\u00a0como condici\u00f3n de un bucle\u00a0<\/span>while<\/span>. Adem\u00e1s se puede utilizar la funci\u00f3n miembro\u00a0<\/span>fail<\/span>\u00a0para detectar un error al abrir el archivo, esto se demuestra en el siguiente programa,\u00a0<\/span>archiv03.cpp<\/span>:<\/span><\/p>\n

#ff8000; background-color: #fafafa;”>#include<\/a>\u00a0<\/p>\n

<\/fstream.h><\/span>int\u00a0main<\/span>()
{
\u00a0\u00a0\u00a0\u00a0<\/span>ifstream\u00a0archivo<\/span>(<\/span>#dd0000; background-color: #fafafa;”>”Pruebas.txt”<\/span>,\u00a0<\/span>ios<\/span>::<\/span>noreplace<\/span>);
\u00a0\u00a0\u00a0\u00a0<\/span>char\u00a0linea<\/span>[<\/span>128<\/span>];
\u00a0\u00a0\u00a0\u00a0<\/span>long\u00a0contador\u00a0<\/span>=\u00a0<\/span>0L<\/span>;<\/p>\n

\u00a0\u00a0\u00a0\u00a0if(<\/span>archivo<\/span>.<\/span>fail<\/span>())
\u00a0\u00a0\u00a0\u00a0<\/span>cerr\u00a0<\/span>#dd0000; background-color: #fafafa;”>”Error\u00a0al\u00a0abrir\u00a0el\u00a0archivo\u00a0Pruebas.txt”\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0else
\u00a0\u00a0\u00a0\u00a0while(!<\/span>archivo<\/span>.<\/span>eof<\/span>())
\u00a0\u00a0\u00a0\u00a0{
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>archivo<\/span>.<\/span>getline<\/span>(<\/span>linea<\/span>,\u00a0<\/span>sizeof<\/span>(<\/span>linea<\/span>));
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>cout\u00a0<\/span>linea\u00a0<\/span>endl<\/span>;
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if((++<\/span>contador\u00a0<\/span>%\u00a0<\/span>24<\/span>)==<\/span>0<\/span>)
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>cout\u00a0<\/span>#dd0000; background-color: #fafafa;”>”CONTINUA…”<\/span>;
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>cin<\/span>.<\/span>get<\/span>();
\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}
\u00a0\u00a0\u00a0\u00a0}
\u00a0\u00a0\u00a0\u00a0<\/span>archivo<\/span>.<\/span>close<\/span>();
\u00a0\u00a0\u00a0\u00a0return\u00a0<\/span>0<\/span>;
}\u00a0<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n

El programa crea un objeto de la clase\u00a0<\/span>ifstream<\/span>\u00a0para abrir el archivo llamado\u00a0<\/span>Pruebas.txt<\/span>\u00a0utilizando el constructor de clase y especificando la bandera\u00a0<\/span>ios::noreplace<\/span>\u00a0que evita que el archivo sea sobreescrito. Si por alg\u00fan motivo ocurre un error al abrir el archivo se genera el mensaje de error especificado en la l\u00ednea 16. En ausencia de errores el programa entra en un bucle\u00a0<\/span>while<\/span>\u00a0el cual est\u00e1 evaluado por efecto de la funci\u00f3n miembro\u00a0<\/span>eof( )<\/span>\u00a0de tal manera que el bucle se ejecuta hasta encontrar el final del archivo. Utlizando la funci\u00f3n miembro\u00a0<\/span>getline( )<\/span>\u00a0se obtiene una l\u00ednea de texto y se exhibe en pantalla, l\u00ednea 21, luego utilizamos una instrucci\u00f3n condicional\u00a0<\/span>if<\/span>\u00a0con el operador de m\u00f3dulo (%) para determinar si se han le\u00eddo 24 l\u00edneas de texto. Cada vez que el contador de l\u00edneas dividido entre 24 d\u00e9 como resultado un res\u00edduo de cero el programa se detiene permitiendo leer las 24 l\u00edneas de texto previas. Para continuar se debe presionar la tecla\u00a0<\/span>enter<\/span>\u00a0y entonces el programa leer\u00e1 y mostrar\u00e1 en pantalla las siguientes 24 l\u00edneas de texto, l\u00edneas 22 a la 26.<\/span><\/p>\n

\u00a0<\/p>\n

\u00a0<\/p>\n

Referencias:<\/p>\n

<\/a>http:\/<\/wbr>\/<\/wbr>www.programacionenc.net\/<\/wbr>index.php?option=com_content&view=article&id=69:manejo-de-archivos-en-c&catid=37:programacion-cc&Itemid=55<\/a><\/p>\n

#TC<\/a>1017 #Mastery<\/a>28<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

\n

Manejo de archivos en c++<\/h2>\n

Para manejar archivos dentro de c++ tenemos que utilizar el archivo de cabecera fstream.h. Este define las clases ifstream, ostream y fstream para poder realizar operaciones de lectura, escritura y lectura\/escritura en archivos respectivamente. Para trabajar con archivos se tienen que crear objetos de éstas clases, según las operaciones que deseamos efectuar. Iniciaremos con las operaciones de escritura, para esto tenemos que declarar un objeto de la clase ofstream, después utilizaremos la función miembro open para abrir el archivo, escribimos en el archivo los datos que sean necesarios utilizando el operador de inserción y por último cerramos el archivo por medio de la función miembro close, como podemos ver en el siguiente ejemplo:<\/p>\n

#ff8000; background-color: #fafafa;”>#include<\/a> <\/p>\n

<\/span>int main<\/span>()
{
    <\/span>ofstream archivo<\/span>;  <\/span>#ff8000; background-color: #fafafa;”>\/\/ objeto de la clase ofstream<\/p>\n

    <\/span>archivo<\/span>.<\/span>open<\/span>(<\/span>#dd0000; background-color: #fafafa;”>”datos.txt”<\/span>);<\/p>\n

    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”Primera línea de texto” <\/span>endl<\/span>;
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”Segunda línea de texto” <\/span>endl<\/span>;
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”Última línea de texto” <\/span>endl<\/span>;<\/p>\n

    <\/span>archivo<\/span>.<\/span>close<\/span>();
    return <\/span>0<\/span>;
} <\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n

En el programa se ha creado un objeto de la clase <\/span>ofstream<\/span> llamado archivo, posteriormente se utiliza la función miembro <\/span>open<\/span> para abrir el arcivo especificado en la cadena de texto que se encuentra dentro del paréntesis de la función. Podemos invocar a la función constructora de clase de tal manera que el archivo también se puede abrir utilizando la siguiente instrucción:<\/span><\/p>\n\n\n\n
\n\n\n\n\n
 <\/td>\n<\/tr>\n
#d1d7dc; font-stretch: normal; line-height: 1.5; font-family: Arial, Arial, sans-serif; color: #006600; background: #fafafa;”>ofstream archivo<\/span>(<\/span>#dd0000;\">\"datos.txt\"<\/span>);  <\/span>#ff8000;\">\/\/ constructora de ofstream <\/span><\/span><\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

Al utilizar la función constructora no es necesario utilizar la función miembro <\/span>open.<\/span> De la misma forma que se utilizan manipuladores de salida para modificar la presentación en pantalla de los datos del programa,es posible utilizar éstos manipuladores al escribir datos en un archivo como lo demuestra el programa <\/span>archiv02.cpp<\/span>, observe que se utiliza un constructor para crear y abrir el archivo llamado <\/span>Datos.txt<\/span>:<\/span><\/p>\n

#ff8000; background-color: #fafafa;”>#include<\/a> 
#include<\/a> 
#include<\/a> <\/p>\n

<\/span>int main<\/span>()
{
    <\/span>ofstream archivo<\/span>(<\/span>#dd0000; background-color: #fafafa;”>”Datos.txt”<\/span>);  <\/span>#ff8000; background-color: #fafafa;”>\/\/ constructor de ofstream
    <\/span>int numero<\/span>;
    
    <\/span>cout <\/span>#dd0000; background-color: #fafafa;”>”Introduzca un numero:” <\/span>endl<\/span>;
    <\/span>cin <\/span>>> <\/span>numero<\/span>;
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”El valor introducido en base 10 es: ” <\/span>numero <\/span>endl<\/span>;
    
    <\/span>archivo <\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>dec<\/span>);
    <\/span>archivo <\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>oct<\/span>);
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”en base octal es: ” <\/span>numero <\/span>endl<\/span>;
    
    <\/span>archivo <\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>oct<\/span>);
    <\/span>archivo <\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>hex<\/span>);
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”y en base hexadecimal es: ” <\/span>numero <\/span>endl<\/span>;
    <\/span>archivo <\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>uppercase<\/span>|<\/span>ios<\/span>::<\/span>showbase<\/span>);
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”utilizando los manipuladores uppercase y showbase” <\/span>
#dd0000; background-color: #fafafa;”>” el valor es: ” <\/span>numero <\/span>endl<\/span>;
    
    <\/span>archivo <\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>uppercase<\/span>|<\/span>ios<\/span>::<\/span>showbase<\/span>);
    <\/span>archivo <\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>hex<\/span>);
    <\/span>archivo <\/span>setiosflags<\/span>(<\/span>ios<\/span>::<\/span>showpos<\/span>|<\/span>ios<\/span>::<\/span>showpoint<\/span>|<\/span>ios<\/span>::<\/span>fixed<\/span>);
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”Utilizando los manipuladores showpos,” <\/span>#dd0000; background-color: #fafafa;”>” showpoint y fixed: ” <\/span>numero <\/span>endl<\/span>;
    
    <\/span>archivo <\/span>resetiosflags<\/span>(<\/span>ios<\/span>::<\/span>showpos<\/span>|<\/span>ios<\/span>::<\/span>showpoint<\/span>|<\/span>ios<\/span>::<\/span>fixed<\/span>);
    <\/span>archivo <\/span>#dd0000; background-color: #fafafa;”>”Finalmente el valor es ” <\/span>numero <\/span>endl<\/span>;
    
    <\/span>archivo<\/span>.<\/span>close<\/span>();<\/p>\n

    return <\/span>0<\/span>;
} <\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n

 <\/p>\n

Operaciones de lectura de archivos <\/strong>
Para abrir un archivo y realizar operaciones de lectura se crea un objeto de la clase <\/span>ifstream<\/span> y se procede prácticamente de la misma forma que lo expuesto en el apartado anterior. Después de abrir el archivo se puede leer su contenido utilizando las funciones miembro de la clase ifstream o bién el operador de extracción. Cuando se lee un archivo, por lo general se empieza al principio del mismo y se leerá su contenido hasta que se encuentre el final del archivo. Para determinar si se ha llegado al final del archivo se puede utilizar la función miembro <\/span>eof<\/span> como condición de un bucle <\/span>while<\/span>. Además se puede utilizar la función miembro <\/span>fail<\/span> para detectar un error al abrir el archivo, esto se demuestra en el siguiente programa, <\/span>archiv03.cpp<\/span>:<\/span><\/p>\n

#ff8000; background-color: #fafafa;”>#include<\/a> <\/p>\n

<\/span>int main<\/span>()
{
    <\/span>ifstream archivo<\/span>(<\/span>#dd0000; background-color: #fafafa;”>”Pruebas.txt”<\/span>, <\/span>ios<\/span>::<\/span>noreplace<\/span>);
    <\/span>char linea<\/span>[<\/span>128<\/span>];
    <\/span>long contador <\/span>= <\/span>0L<\/span>;<\/p>\n

    if(<\/span>archivo<\/span>.<\/span>fail<\/span>())
    <\/span>cerr <\/span>#dd0000; background-color: #fafafa;”>”Error al abrir el archivo Pruebas.txt” <\/span>endl<\/span>;
    else
    while(!<\/span>archivo<\/span>.<\/span>eof<\/span>())
    {
        <\/span>archivo<\/span>.<\/span>getline<\/span>(<\/span>linea<\/span>, <\/span>sizeof<\/span>(<\/span>linea<\/span>));
        <\/span>cout <\/span>linea <\/span>endl<\/span>;
        if((++<\/span>contador <\/span>% <\/span>24<\/span>)==<\/span>0<\/span>)
        {
            <\/span>cout <\/span>#dd0000; background-color: #fafafa;”>”CONTINUA…”<\/span>;
            <\/span>cin<\/span>.<\/span>get<\/span>();
        }
    }
    <\/span>archivo<\/span>.<\/span>close<\/span>();
    return <\/span>0<\/span>;
} <\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n

El programa crea un objeto de la clase <\/span>ifstream<\/span> para abrir el archivo llamado <\/span>Pruebas.txt<\/span> utilizando el constructor de clase y especificando la bandera <\/span>ios::noreplace<\/span> que evita que el archivo sea sobreescrito. Si por algún motivo ocurre un error al abrir el archivo se genera el mensaje de error especificado en la línea 16. En ausencia de errores el programa entra en un bucle <\/span>while<\/span> el cual está evaluado por efecto de la función miembro <\/span>eof( )<\/span> de tal manera que el bucle se ejecuta hasta encontrar el final del archivo. Utlizando la función miembro <\/span>getline( )<\/span> se obtiene una línea de texto y se exhibe en pantalla, línea 21, luego utilizamos una instrucción condicional <\/span>if<\/span> con el operador de módulo (%) para determinar si se han leído 24 líneas de texto. Cada vez que el contador de líneas dividido entre 24 dé como resultado un resíduo de cero el programa se detiene permitiendo leer las 24 líneas de texto previas. Para continuar se debe presionar la tecla <\/span>enter<\/span> y entonces el programa leerá y mostrará en pantalla las siguientes 24 líneas de texto, líneas 22 a la 26.<\/span><\/p>\n

 <\/p>\n

 <\/p>\n

Referencias:<\/p>\n

<\/a>http:\/\/www.programacionenc.net\/index.php?option=com_content&view=article&id=69:manejo-de-archivos-en-c&catid=37:programacion-cc&Itemid=55<\/a><\/p>\n

#TC<\/a>1017 #Mastery<\/a>28<\/p>\n<\/div>\n

Continue reading →<\/span><\/a><\/p>\n","protected":false},"author":101,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3,26],"tags":[161,534,538,535,144,537,536,533,532,95,127,486,40,287],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts\/14067"}],"collection":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/users\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/comments?post=14067"}],"version-history":[{"count":1,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts\/14067\/revisions"}],"predecessor-version":[{"id":14068,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts\/14067\/revisions\/14068"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/media?parent=14067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/categories?post=14067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/tags?post=14067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}