Salve a tutti,
ho un problema con un programma che dovrei usare per estrarre e stampare su schermo una riga random da un file di testo. Ho scritto questo, tuttavia non funziona. Se mi aiutaste a trovare il bug ve ne sarei grato, grazie mille.
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <fstream>
using namespace std ;
string riga_random(string autore, string file);
int counter(string file);
int counter(string file)
{
ifstream f(file.c_str());
string s;
int n ;
n = 0 ;
while(f.good()) //fino a quando c'è qualcosa da leggere ..
{
//legge tutta la riga dal file e la mette nella variabile s
getline(f, s);
n++ ;
//cout<<s<<endl;
}
return n ;
f.close(); //chiude il file
}
string riga_random(string file)
{
int n_riga, n_righe ;
n_righe = counter(file.c_str()) ;
n_riga = rand() % n_righe ;
ifstream f(file.c_str());
int i;
string s ;
while ( i < n_riga )
{
i = 1 ;
getline (f,s) ;
i++ ;
}
return s ;
}
int main()
{
string s;
s = riga_random("Quotes.txt");
cout<< s;
system("PAUSE");
return 0;
}
Vi allego anche due screenshoot del file di testo e del sorgente compilato:
- File di testo
- File compilato (n pratica vedo solo un puntatore lampeggiante)