School-Coding-Cpp/sfusi/es16_casuali_foschini_file.cpp

59 lines
1.0 KiB
C++

/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Data: 10/04/2025
es16. (casuali)
Scrivere una funzione che, ricevuti in ingresso un nome di file e un numero
intero N, memorizzi nel file N numeri casuali disposti a coppie su linee
diverse (una coppia per ogni linea).
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
#define SIZE_LINE 1000+1
#define V_MIN 10
#define V_MAX 99
using namespace std;
void numeriCasuali(const char * nomeFile, int &n);
int main(void) {
srand(time(NULL));
char nomeFile[SIZE_LINE];
int n;
cout << "Nome file: ";
cin >> nomeFile;
cout << "Numero di valori: ";
cin >> n;
numeriCasuali(nomeFile, n);
return 0;
}
void numeriCasuali(const char * nomeFile, int &n) {
FILE * fp = fopen(nomeFile, "w+t");
if (fp != NULL) {
for (int i = 0; i < n; i++) {
int a = rand() % (V_MAX - V_MIN + 1) + V_MIN;
fprintf(fp, "%d ", a);
if (i % 2 != 0) {
fprintf(fp, "\n");
}
}
fclose(fp);
} else {
perror("Error (source)");
}
}