Informatică, întrebare adresată de angelicus, 9 ani în urmă

Am un program care nu lucreaza. (E exemplu din carte)
Cine gaseste greseala primeste 5 stelute si coronita  =)))))))

Fisierul nr.in contine numere intregi, scrise pe mai multe linii, numerele de pe aceeasi linie fiind separate prin spatii. Scrieti un program care sa numere cate valori intregi sunt pe fiecare dintre liniile fisierului.

Programul de la sf. cartii
#include <fstream.h>
int main()
{ifstream f("nr.in");
if (!f) return 1;
char c;
int nr=0, lin=1, v;
while (!f.eof() )
  {f.get(c);
  if (f.good() )
  if (c=='\n')
     {cout<<"Pe linia "<<lin<<" sunt "<<nr<<" valori\n"; nr=0; lin++;
     }
  else
     {f.putback(c); f>>v; nr++;}
   }
f.close();
return 0;
}

Programul cu care a fost creat fisierul nr.in.
#include <fstream.h>
int main()
{ofstream f("nr.in");
int v, x, i, j;
for (i=1; i<5; i++)
  {x=i;
   for (j=1; j<=x; j++)
    {cin>>v; f<<v<<" ";}
     f<<"\n";
   }
f.close();
return 0;
}


tsorin99: l-ai compilat si ai observat ca nu merge ?
tsorin99: o sa ma joc cu e si daca ii dau de cap cu lamuririle aferente iti spune.
tsorin99: spun *
tsorin99: mda.. nu imi dau seama unde e greseala...bafta
artur99: eu as fi luat cu fopen tot fisierul, apoi as fi facut un strtok pentru \n, apoi din rezultat pentru " " apoi verificam fiecare string daca contine doar cifre...
angelicus: Tsorin, da, se compileaza dar nu functioneaza. Nu afiseaza nimic pe ecran.
angelicus: Artur, exista si alte metoda, dar vroiam sa vad ce nu lucreaza aici :D

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
2
http://pastebin.com/BS4H41m7
Am modificat pe acolo deoarece identarea era oribilă și ultima linie nu era citită. Ar trebui să folosești <iostream> în loc de <iostream.h> apropo.


angelicus: doar ca ultima linie era in plus
angelicus: cea dupa iesirea din while
angelicus: mia afisat pe linia 1 sunt 1 valori
angelicus: pe lin 2 , 2 val, pe 3, 3 val, pe 4, 4 val
angelicus: si pe linia 5, 1 valoare
angelicus: linia 5 nici nu exista
AntiEaglesDavids: :) bIne că însfârșit merge.
angelicus: aveam in vedere "cout<<"Pe linia "<<lin<<" sunt "<<nr<<" valori\n";" dupa iesirea din while
angelicus: mersi mult! :)
AntiEaglesDavids: npc
Alte întrebări interesante