Ciao a tutti. Potrà essere banale il quesito che sto ponendo, ma nel mettere insieme un codice si sa si è spesso bloccati da una sciocchezzuola di cui non si trova la sintassi giusta e finché non la si trova non si va avanti. Cioè, l'app console in questione è completa e funzionante con system("pause) e ho avuto anche occasione di usarla per una serata Tombola con amici. Sto usando un pc Windows 10 e Visualstudio 2019. la mia app in pratica serve a stampare a schermo 90 numeri random da 1 a 90 e serve appunto come estrattore per un bingo o una tombola se hai le cartelle per giocare. Quì di seguito copio il codice c++ attuale.
#include <iostream>
using namespace std;
int main()
{
int tracciamento[90];
for (int i = 0; i < 90; i++)
{
int est;
do
{
est = rand() % 90;
}
while (tracciamento[est] == 100);
//perché non esca mai uno stesso numero più volte
tracciamento[est] = 100;
//l'int random+1 perché esca anche il 90 e mai lo 0 che non esiste
cout << est + 1 << endl;
system("pause");
}
}
Scritta così ha funzionato benissimo tranne per il fatto che abiamo finito di giocare prima di terminare tutte e 90 le estrazioni e ho dovuto riavviare tutto il pc per chiudere. Perché anche con alt f4 mi usciva solo dal pause e mi sparava altri numeri che non servivano più. In questo Windows 10 ha fatto dei progressi. su 7 una console in c++ non si chiude finché non termina. Devi riavviare anche quando c'è un ciclo while infinito. Adesso fortunatamente per quelli vale alt f4. Ma pause rimane sempre che ogni cosa digitata dopo indiscriminatamente fa solo finire la pausa. Il che mi va anche bene perché così se anche premi un carattere della tastiera non lo memorizza nemmeno sullo schermo. Perché poi quando mi son messo in cerca di altri comandi che mi permettessero d'interrompere l'esecuzione a mio piacimento tutte le soluzioni alternative che ho trovato fin'ora più che pause sono letture da tastiera.
Come cin.get() o getc(stdin).
Solo che non mi pare il massimo se nel mentre che dei giocatori di tombola guardano le cartelle per vedere se hanno i numeri si possa scribacchiare nel programma per estrarre cose ben leggibili in mezzo alle altre. Magari anche i numeri che vorresti uscissero. Infatti gli ho scartati e ho lasciato system("pause"). Piuttosto la prossima volta riavvio dinuovo se non c'è nulla di meglio. Qualcuno a idee da suggerirmi? Grazie in anticipo. In breve, vorrei sapere se esiste in c++ un'attesa che consenta di chiudere l'eseguibile, ma non di scrivere finché non si esce dall'attesa. E se si quale. Poi magari puta caso in Windows 11 che non ho ancora provato vien fuori che alt f4 viene riconosciuto come comando per uscire dal programma e non solo dal pause. Ma ne dubito. Ho scoperto che anche il ps1 a differenza del batch il comando pause anche se si scrive uguale lo interpreta come un input da tastiera che termina con invio. Il che m'ha lasciato abbastanza perplesso. Che il testo digitato in pausa rimanga sul video intendo. Anche perché qualunque testo uno possa inserire in un punto simile difficilmente potrà essere usato in qualche modo dallo script