Aplicatii Fisiere Cpp
-
Upload
andrei-boaca -
Category
Documents
-
view
7 -
download
3
Transcript of Aplicatii Fisiere Cpp
1) Se citeste un fisier TEST ce contine numere intregi despartite prin spatiu sau ENTER. Sa se afiseze minimul si maximul din acel fisier.
#include <iostream>using namespace std;#include<fstream.h>#include<values.h>
void main(){
ifstream f("C:\\test.txt");
/*ifstream f;f.open("numar.txt");*/
if(!f) //sau f=NULL{
cout<<"Eroare la deschiderea fisierului!"<<endl;return;
}int x,max=-MAXINT,min=MAXINT;
f.seekg(0,ios::beg); //ne pozitionam la inceputul fisieruluiwhile(!f.eof()){f>>x;if (max<x)
max=x;else if (min>x)
min=x;}
f.close();cout<<"Maximul este: "<<max<<endl;cout<<"Minimul este: "<<min<<endl;
int k;
cin>>k;}
2) Se citeste un fisier text ce contine numere intregi despartite prin spatiu sau ENTER. Se cere a se calcula si afisa pe ecran suma tuturor valorilor numerice din fisier si numarul de elemente strict negative.#include<iostream.h>using namespace std;#include<fstream.h>#include<values.h>
void main(){
ifstream f("C:\\test.txt"); //sau: fstream f("C:\\test.txt",ios::in);if(!f) //sau f=NULL{
cout<<"Eroare la deschiderea fisierului!"<<endl;return;
}
int x[100], n_neg=0, s=0, i;f.seekg(0,ios::beg); //ne pozitionam la inceputul fisieruluii=0;while(!f.eof()){
f>>x[i];if(x[i]<0)
n_neg++;s+=x[i++];
}
f.close();cout<<"Numarul elementelor negative: "<<n_neg<<endl;cout<<"Suma tuturor elementelor: "<<s<<endl;
int k; cin>>k; }
3) Se citeste un fisier TEXT ce contine numere intregi despartite prin spatiu sau ENTER. Sa se afiseze minimul si maximul din acel fisier. Se va defini o clasa ptr numerele intregi din fisier.#include<iostream.h>using namespace std;#include<fstream.h>#include<values.h>
class numar{
int n;public:int& retur();friend istream& operator>>(istream&,numar&);
};int& numar::retur(){
return n;}istream& operator>>(istream& a,numar& b){
a>>b.n;return a;
}void main(){
ifstream f("C:\\test.txt ");if(!f){
cout<<"Eroare la deschiderea fisierului!"<<endl;return;
}
numar x;int max=-MAXINT;int min=MAXINT;f.seekg(0,ios::beg);while(!f.eof()){f>>x;if (max<x.retur())
max=x.retur();else if (min>x.retur())
min=x.retur();}
cout<<"Minimul este: "<<min<<endl;cout<<"Maximul este: "<<max<<endl;
int k;
cin>>k;}
4) Se citeste un sir de la tastatura pana la intalnirea caracterului "$". Dupa citire datele se scriu intr-un fisier text si se preiau din fisierul respectiv si se face contorizarea fiecarei vocale din fisier.#include<iostream.h>
#include<fstream.h>#include<stdio.h>using namespace std;void main(){
char c;int a=0,e=0,i=0,o=0,u=0;ofstream f("C:\\test.txt");
if(!f){
cout<<"Eroare la deschidere."<<endl;}
do{
c=getchar();switch(c){
case 'a': a++; break;case 'e': e++; break;case 'i': i++; break;case 'o': o++; break;case 'u': u++;
}
if(c!='$')f.put(c); //ar fi mers si f<<c;
}while(c!='$');
f.close();ofstream g("C:\\test.txt");if(!g){
cout<<"Eroare la deschidere fisierului de citire."<<endl;}
g<<"Vocala a se gaseste de : "<<a<<" ori.\n";g<<"Vocala e se gaseste de : "<<e<<" ori.\n";g<<"Vocala i se gaseste de : "<<i<<" ori.\n";g<<"Vocala o se gaseste de : "<<o<<" ori.\n";g<<"Vocala u se gaseste de : "<<u<<" ori.\n";g.close();cout<<"Opratia de contorizare a vocalelor a reusit!"<<endl;
int k;
cin>>k; }
5) Sa se sumeze valorile numerice dintr-un fisier text.#include<iostream.h>#include<string.h>#include<stdlib.h>#include<fstream.h>#include<stdio.h>using namespace std; void main(){
char a[255], separator[]=" ,",cifre[]="0123456789.+-",*p;double s=0;fstream f("C:\\test.txt",ios::in);
if(!f){
cout<<"Eoare la deschiderea fisierului."<<endl;return;
}
while(!f.eof()){
f.getline(a,255,'\n');p=strtok(a,separator); //se separa sirul folosind ca separator spatiul
sau virgulawhile (p){
if (strspn(p,cifre)==strlen(p))s+=atof(p);cout<<p<<"\n";p=strtok(NULL,separator);
}}
cout<<"Suma este: "<<s<<endl;
int k; cin>>k;}