Upcoming SlideShare
×

1,306 views
1,258 views

Published on

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
1,306
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
30
0
Likes
0
Embeds 0
No embeds

No notes for slide

1. 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. 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
4. 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. 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. 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. 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. 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 *> (&rege), 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 *>(&regp), 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 *> (&rege), 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. 9. for (int m = 0; m < rege.minutos * 60 /15; m++) { f.read ( reinterpret_cast<char *>(&regp), 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