Prev Next Up Title Contents Index

Tiedostot ja tietovirrat


Vastaavasti ulkoiset tiedostot voidaan yhdistää tietovirtoihin:

filestre.cpp - tiedostot ja tietovirrat

	/* FILESTRE.CPP */
	/* Ohjelma lukee kokonaislukuja sisältävän tiedoston
	   des.dat ja kirjoittaa siitä tiedoston hex.dat
	   jossa kullakin rivillä on luku 10-järjestelmässä ja heksana
	   Esim:
	     des.dat:
	       10 12 15 19 175
	     hex.dat:
	          10 = 0x000a
	          12 = 0x000c
	          15 = 0x000f
	          19 = 0x0013
	         175 = 0x00af
	*/
	#include <stdio.h>
	#include <fstream.h>
	#include <iomanip.h>
	
	#define DEC(lkm) setfill(' ') << dec << setw(lkm)
	#define HEX(lkm) setfill('0') << hex << setw(lkm)
	
	int main(void)
	{
	  ifstream fi("des.dat");  if ( !fi ) return 1;
	  ofstream fo("hex.dat");  if ( !fo ) return 2;
	
	  int i;
	
	  fo << setiosflags(ios::showbase | ios::internal); // Täytä heksat!
	
	  while ( fo ) {
	    if ( !(fi >> i) ) break;
	    fo << DEC(5) << i << " = " << HEX(6) << i << endl;
	  }
	
	  fi.close(); fo.close();
	
	  return 0;
	}

Tehtävä 1.8 Tiedostot

Kirjoita tietovirtoja käyttäen ohjelma, joka kysyy kokonaislukuja (ASCIIna) sisältävän tiedoston nimen, laskee tiedostossa olevien lukujen keskiarvon ja tulostaa keskiarvon 3:lla desimaalilla näyttöön.


Prev Next Up Title Contents Index