Hernandez_Hernandez_Practica web de la sesion 12.pptx
Unidad16 Codigof1
1. EJEMPLO 16.1.
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int n, suma = 0, c = 0;
while(cin >> n)
{
suma+= n;
c++;
}
cout << quot; la media parcial es: quot; << (float)suma/c << endl;
cin.clear();
while(cin >> n)
{
suma+= n;
c++;
}
cout << quot; la media total es quot; << (float) suma/c << endl;
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
resultado de ejecución:
EJEMPLO 16.2
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << quot; Mazarambroz se encuentra a quot; << 100;
cout << quot; km de Toledo. Tiene quot; << 1500 << quot; habitantes quot;<< endl;
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
resultado de ejecución
EJEMPLO 16.3.
#include <cstdlib>
#include <iostream>
1
2. #include <iomanip.h>
using namespace std;
int main(int argc, char *argv[])
{
const int n =15;
float dato = 123.4567;
cout << n << endl; // salida en base diez
cout << oct << n << endl; // salida en base ocho
cout << hex<< n << endl; // salida en base 16
cout <<setw(8) << quot; holaquot; << endl; // anchura de campo 8
cout << setw(10); // anchura 10
cout.fill('#'); // rellena con #
cout << 34 << endl; // escribe 34 en base 16 anchura 10 y relleno
cout<< setprecision(5) << dato << endl; // precision 5 3 antes del
//punto y 2 después
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
resultado de ejecución
EJEMPLO 16.4 .
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char c;
cout << quot;comienza entrada de cadenanquot;;
while( cin.get(c))
cout << c;
cout << endl;
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
Resultado de ejecución:
EJEMPLO 16.5
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
2
3. char cadena[20];
cout << quot; introduza cadena de carateresnquot;;
cin.get(cadena, 20);
cout << cadena<< endl;
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
Resultado de ejecución:
EJEMPLO 16.6
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char cadena[20];
int valor;
cout << quot; introduzca cadena nquot;;
cin.getline(cadena, 20);
cout << quot; cadena leida :quot;<< cadena << endl;
cout << quot; introduzca dato numerico:nquot;;
cin >> valor;
cout << quot; valor leido: quot; << valor << endl;
cin.getline(cadena, 2);
cout << quot; introduzca nueva cadena nquot;;
cin.getline(cadena, 20);
cout << quot; nueva cadena leida: quot;<< cadena << endl;
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
Resultado de ejecución:
EJEMPLO 16.7
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
3
4. ofstream fichero;
ifstream fichero1;
char c;
fichero.open(quot;datos.cppquot;, ios::out);
cout << quot; escriba fichero de texto: control+z para terminarnquot;;
while( cin.get(c))
fichero.put(c);
fichero.close();
cout << quot; lectura y escritura del fichero anteriornquot;;
fichero1.open(quot;datos.cppquot;, ios::in);
while(fichero1.get(c))
cout.put(c);
fichero1.close();
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
EJEMPLO 16.7
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream f; // fichero de entrada
ofstream g; // fichero de salida
char cadena[81]; // cadena de 81 bytes para leer de un fichero y
//escribir en el otro
// Abrir el fichero de f de lectura y binario
f.open(quot;datos.datquot;, ios::binary);
if(!f.good())
{
cout <<quot;El fichero quot; << quot;datos.dat quot; << quot; no existe nquot;;
exit (1);
}
// Crear o sobreescribir el fichero g en binario
g.open(quot;res.datquot;, ios::binary);
if(!g.good()) {
cout <<quot;El fichero quot; << quot;res.dat quot; << quot; no se puede crearnquot;;
f.close();
exit (1);
}
do
{
f.read(cadena, 81); // lectura de f
g.write(cadena, f.gcount()); // escritura de los bytes leídos
4
5. } while(f.gcount() > 0); // repetir hasta que no se leen datos
f.close();
g.close();
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
EJERCICIO 16.1
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
fstream f;
char nombre[14]; // tiene que haber espacio para el nombre
cout << quot; escriba el nombre del fichero: quot;;
cin.getline(nombre,14);
f.open(nombre, ios::in);
if (!f.good())
{
cout << quot;error en apertura de fichero lecturaquot;;
f.open(nombre, ios::out);
..
}
..
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
EJERCICIO 16.2
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
fstream f;
int num, neg=0, pos=0;
f.open(quot;NUMEROS.TXTquot;, ios::in);
if (!f.good())
cout << quot;error en apertura de fichero lecturaquot;;
else
{
while (!f.eof ())
{
f >> num;
cout << num << endl; // visualización del fichero
if (num < 0)
neg++;
else
pos ++;
}
5
6. cout <<quot;El número de enteros no negativos es quot; << neg;
cout <<quot;El número de enteros posirivos es quot; << pos;
f.close ();
}
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
EJERCICIO 16.3
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
fstream fichero;
char c;
// apertura del fichero en modo binario para escribir
fichero.open(quot;ejemplo1.cppquot;, ios::out | ios::binary);
cout << quot; escriba fichero de texo: control+z para terminarnquot;;
//lectura de los datos del fichero del input y creación del binario
while( cin.get(c))
fichero.put(c) ;
fichero.close();
cout << quot; lectura y escritura del fichero anteriornquot;;
fichero.open(quot;ejemplo1.cppquot;, ios::in | ios::binary);
while(fichero.get(c))
cout.put(c);
fichero.close();
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
EJERCICIO 16.4
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream fichero;
ofstream ficherob;
char c;
fichero.open(quot;salas.datquot;, ios::in) ;
if (!fichero.good())
{
cout << quot;error en apertura de fichero lecturaquot;;
exit(1);
}
ficherob.open(quot;salas.binquot;, ios::out | ios::binary);
if (!fichero.good())
6
7. {
cout << quot;error en apertura de fichero escrituraquot;;
exit(1);
}
while( cin.get(c))
ficherob.put(c);
fichero.close();
ficherob.close();
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
PROBLEMA 16.1
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream f;
char cadena_a_buscar[20], nombrefichero[14], linea[81];
char *cad;
int veces = 0, i = 0;
if (argc != 3)
{
printf (quot;Uso: programa máscara archivo.nquot;);
exit (1);
}
strcpy (cadena_a_buscar, argv[1]);
strcpy (nombrefichero, argv[2]);
f.open(nombrefichero, ios::in);
if (!f.good())
{
cout << quot;error en apertura de fichero lecturaquot;;
exit(1);
}
while (!f.eof())
{
f.getline( linea, 80);
i++;
cad = strstr (linea, cadena_a_buscar);
if (cad)
{
printf (quot;La cadena_a_buscar aparece en la línea %d nquot;, i);
veces++;
}
}
printf (quot;La máscara aparece %d veces en el fichero. nquot;, veces);
f.close();
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
EJERCICIO 16.2
#include <cstdlib>
7
8. #include <iostream>
#include <fstream>
//12.13
using namespace std;
struct entrenamiento
{
char fecha[11]; /* dd/mm/aaaaa */
char hora[9]; /* hh:mm:ss */
int minutos;
} rege;
struct pulsom
{
char hora[9]; /* hh:mm:ss */
int pulsaciones;
} regp;
int main(int argc, char *argv[])
{
fstream f;
char limpia[3];
f.open(quot;ENTRENAM.DATquot;, ios::out | ios:: binary);
if (!f.good())
{
cout <<quot;Error de apertura quot;;
exit(1);
}
// lectura de los datos del registro de fecha entrenamiento
cout <<quot; Fecha entrenamiento : quot;;
cin.getline(rege.fecha,11);
cout<< quot; Hora entrenamiento : quot;;
cin.getline(rege.hora,9);
cout << quot;Duracion en minutos del entrenamiento : quot;;
cin >> rege.minutos;
cin.getline(limpia,3); // hay que limpiar el buffer de entrada
f.write(reinterpret_cast<char *> (®e), sizeof (rege));
// lectura de los distintos datos del pulsómetro
cout <<quot;n--- Datos pulsometro ---quot;;
for (int m = 0; m < rege.minutos * 60 /15; m++)
{
cout <<quot; Hora : quot;;
cin.getline(regp.hora, 9);
cout << quot;Pulsaciones : quot;;
cin >> regp.pulsaciones;
cin.getline(limpia,3);
f.write ( reinterpret_cast<char *>(®p), sizeof (regp));
}
f.close();
cout << quot; fichero leidonquot;;
f.open(quot;ENTRENAM.DATquot;, ios::in | ios:: binary);
// lectura de los datos del registro de fecha entrenamiento de f
f.read(reinterpret_cast<char *> (®e), sizeof (rege));
cout <<quot; Fecha entrenamiento : quot;<< rege.fecha << endl;
cout<< quot; Hora entrenamiento : quot; << rege.hora <<endl;
cout << quot; Duracion en minutos del entrenamiento : quot;;
cout << rege.minutos<< endl << endl;
//lectura de los distintos datos del pulsímetro de f
8
9. for (int m = 0; m < rege.minutos * 60 /15; m++)
{
f.read ( reinterpret_cast<char *>(®p), sizeof (regp));
cout <<quot; Hora : quot; << regp.hora << endl;
cout << quot;Pulsaciones : quot; << regp.pulsaciones << endl;
}
system(quot;PAUSEquot;);
return EXIT_SUCCESS;
}
Resultados de ejecución del programa
9