Jump to content
Stefan

Cum Citesc N Numere Dintr-Un Fisier?

Recommended Posts

Salut, cum citesc n numere dintr-un fisier? Am de rezolvat problema asta: Se citește nu număr natural N din fisierul FILE.DAT. Se citesc apoi N numere reale din acelasi fisier. Să se afișeze valoarea maximă din cele N numere.

Ma descurc sa o fac dar nu stiu cum sa citesc n numere...

Share this post


Link to post
Share on other sites

Nu stiu de ce ai fisierul file.dat.

Eu am invatat cu file.in si file.out 

Poate merge si asa...

 

Citesti primul numar din acel fisier, care este N.

dupa faci un for de la 0 pana la N.

In acel for, dai comanda sa citesti un nr din fisier.

for-ul se repeta de N ori, citind N numere.

Treaba ta ce mai faci in rest cu numarul ala.

 

Uite cum as face eu, daca era fisier.in

ifstream in("fisier.in");   
in>>n;
for(i=0;i<=n;i++) 
{ 
   in>>x; 
 //poate vrei sa mai prelucrezi acel nr si sa-l afisezi, trebuie sa faci asta tot in for, de aia am pus acolade.
}
in.close();

Share this post


Link to post
Share on other sites

Stie cineva ca eu nu stiu :(

 

 

Dar asta-i tema la TIC? sau ce e ? 

 

Mi se pare ca e matematica pura =))

Share this post


Link to post
Share on other sites

Exemplu:

-iti trebuie biblioteca: #include<fstream>

 

ifstream f("input.in");
ofstream g("output.out");
 
f>> x;   => citesti variabila x din fisierul input
g<< x;  => afisezi variabila x in fisierul output

 

@Idd.man25: for-ul lui nu merge pana la n ci pana la n-1 (i=0;i<n;i++). Daca ar merge pana la n atunci el ar citi n+1 valori.

Share this post


Link to post
Share on other sites

 

@Idd.man25: for-ul lui nu merge pana la n ci pana la n-1 (i=0;i<n;i++). Daca ar merge pana la n atunci el ar citi n+1 valori.

 

asa e, ma obisnuisem cu vectorii sa incep de la 0 :)) 

am facut un fel de corcitura.  

 

care e treaba cu fisier.dat oricum? 

el nu are .in

Share this post


Link to post
Share on other sites

asa e, ma obisnuisem cu vectorii sa incep de la 0 :)) 

am facut un fel de corcitura.  

 

care e treaba cu fisier.dat oricum? 

el nu are .in

 

Nu coneaza...

ifstream blablabla("numefisier.extensie");

Share this post


Link to post
Share on other sites

Noi am facut ceva de genul :

 

Se citesc 2 numere întregi a şi b din fişierul intrare.txt. Să se afişeze pe ecran toate numerele
întregi dintre cele două numere.
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("intrare.txt"); //f- descriptor de fisier pentru citire
int minim, maxim, i, a,b;
int main ()
{
 f>>a>>b; // citire din fisier
 if (a>b)
 {
 minim = b;
 maxim = a;
 }
 else{
 minim = a;
 maxim = b;
 }
 for (i=minim;i<=maxim;i++)
 cout<<i<<" ";
 f.close( ); //se inchide fisierul intrare.txt
 return 0;
}

Share this post


Link to post
Share on other sites

Conteaza ca doar nu citesti variabile din orice tip de fisier. (alegi fiserul text in care ti-ai pus datele)

 

In principiu faci in fisier de tip text si ii pui un .in insa poti sa folosesti si altceva.

Citeste aici ca sa intelegi care e treaba cu .dat : http://pc.net/extensions/file/dat

 

Te contrazici singur.

Eu vreau sa citesc numere din fisierul Lord_Of_The_Rings.mkv. Este un fisier text in care mi-am pus datele. Ce ma opreste ?

Share this post


Link to post
Share on other sites

E ok ce ai facut. Doar trebuie sa citesti prima oara n-ul din fisier , faci un for si dupa rezolvi chestia cu maximul.

 

Si cum fac sa il citesc ? Nu am priceput nimic la lectia asta.

Poti face un program deja rezolvat cu rezolvarea de la problema asta(facuta de mine) ca sa inteleg : .Se citește nu număr natural N din fisierul FILE.DAT. Se citesc apoi N numere reale din acelasi fisier. Să se afișeze toate numerele din fisierul FILE.DAT

 

PS. in fisierul FILE.DAT trebuie sa fie asa :

3 <- numarul elementelor
5 73 21 <- elementele

Cum fac ca sa citesc acele n numere ?

Share this post


Link to post
Share on other sites

cum citesti un numar dintr-un fisier? 

Daca stii asta, citesti un numar. Dupa aceea faci un for astfel incat sa executi citirea de atatea ori cat zice numarul anterior.

Share this post


Link to post
Share on other sites

cum citesti un numar dintr-un fisier? 

Daca stii asta, citesti un numar. Dupa aceea faci un for astfel incat sa executi citirea de atatea ori cat zice numarul anterior.

 

Pai ce ar trebui sa contina for-ul ?

Share this post


Link to post
Share on other sites

poti sa faci si asa:

#include<fstream>
ifstream f ("date.in");   /poti sa pui ce fisier vrei
int n,.....;         //variabilele de care ai nevoie
int main()
{
while(f>>n)    //asta se traduce cu cat timp se citeste din fisier
{  instructiuni
   .
   .
   .
   etc.
}

}

Share this post


Link to post
Share on other sites

 

poti sa faci si asa:

#include<fstream>
ifstream f ("date.in");   /poti sa pui ce fisier vrei
int n,.....;         //variabilele de care ai nevoie
int main()
{
while(f>>n)    //asta se traduce cu cat timp se citeste din fisier
{  instructiuni
   .
   .
   .
   etc.
}

}

Mersi, dar Gods spunea ceva de un for :-?

Share this post


Link to post
Share on other sites

Pui for dacă ştii câte numere ai în fişier, gen

5 /* Sunt 5 numere */

9 85 45 78 981

Dar dacă ai gen

52 94 96 485 5 454 5 

Ori foloseşti ce a pus JustMagik, ori gen

#include <fstream>

std :: ifstream in ( "intrare.txt" );

int main ( void )
{
    int numar;

    while ( ! in.eof() ) /* Cat timp nu ajungi la sfarsitul fisierului */
    {
        in >> numar; /* citesti cate un numar */
        /**
         * Bla bla bla te joci cu numarul citit
         */
    }
    return 0;
}

 

Share this post


Link to post
Share on other sites

 

Pui for dacă ştii câte numere ai în fişier, gen

5 /* Sunt 5 numere */

9 85 45 78 981

Dar dacă ai gen

52 94 96 485 5 454 5 

Ori foloseşti ce a pus JustMagik, ori gen

#include <fstream>

std :: ifstream in ( "intrare.txt" );

int main ( void )
{
    int numar;

    while ( ! in.eof() ) /* Cat timp nu ajungi la sfarsitul fisierului */
    {
        in >> numar; /* citesti cate un numar */
        /**
         * Bla bla bla te joci cu numarul citit
         */
    }
    return 0;
}

 

 

Mie imi trebuie asa 

5 /* Sunt 5 numere */

9 85 45 78 981

Share this post


Link to post
Share on other sites

 

Mie imi trebuie asa 

5 /* Sunt 5 numere */

9 85 45 78 981

 

Pai daca iti trebuie asa, faci cu for:

#include <fstream>

using namespace std;

ifstream ..
ofstream ..

int main() {
fin >> n;

for(int i = 1; i <= n; i++) {
   fin >> x;
   instructiuni ....
   ...
}


....
return 0;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×