Problema con il system("PAUSE") del linguaggio C

Pubblicità

helldron

Utente Attivo
Messaggi
135
Reazioni
0
Punteggio
38
Ciao a tutti!
Voelevo chiedere aiuto per chi lo sapesse come poter risolvere un problema che il mio pc mi da quando uso il comando system("PAUSE"); che implemento correttamente come in un esempio come questo:

#include<stdio.h>
#include<stdlib.h>
int main()
{
.....
.....
system("PAUSE");
return 0;
}

In pratica pur scrivendo tutto a posto e aggiungendo la chiamata alla libreria stdlib.h non sembra volermi far vedere la finestra dell'applicazione che scompare al momento dell'esecuzione. Su un altro pc con windows me mi funziona. Ora lo uso su Xp e non capisco proprio cosa manchi :skept:!!!
Grazie per l'aiuto!!
Ciao!! :help:
 
al posto di quella chiamata piuttosto onerosa perchè non usare la semplice e calssica getch(); ???
 
fai la prova ad usare getch() e vedi che succede.

il problema che hai potrebbe essere dovuto al fatto che il comando in questione (pause) aviato con system() non sia trovato o non blocchi il processo che lo esegue.
 
Hp provato getch() ma mi da errore e poi non so che funzione sia. Non so se manca qualcosa da implementare come qualche libreria. Ti ricordo che il programma che ho chiama sempre le due librerie: stdlib.h e stdio.h
Che fare???
 
getchar();

Riguardo la funzione suggerita dal collega se non erro la funzione corretta è getchar();
in pratica il sistema rimane in attesa di un input da parte dell'utente. Molto meno onerosa della system("pause"), funzione sconsigliatissima.
Spero di esserti stato utile.
 
Vista la situazione penso che "l'onerosità" della chiamata nn sia un gran problema :D

cmq nn capisco perkè nn funzioni il system("pause");

per curiosità, prova ad andare nel prompt di dos e digitare pause.... funziona?
 
ue' system("PAUSE") e non system("pause")..... ma dubito tu abbia commesso questo errore anche nell'implementazione..... ok torniamo alla serietà:)

mmmm.... per caso all'interno del codice ci sono alcune istruzioni di input output (soprattutto di input)? in caso affermativo prova ad aggiungere qualche altro system("PAUSE") alla fine e vedi cosa succede. Intendo una cosa del genere:

system("PAUSE"); system("PAUSE"); system("PAUSE"); system("PAUSE"); system("PAUSE"); return 0;

E' l'unica cosa che mi viene in mente con i dati a disposizione e così senza vedere il codice....sorry......
 
per usare getch() devi includere la libreria <conio.h>.

il comando PAUSE è riconosciuto dalla shell di DOS/Windows indipendentemente dall'uso delle lettere maiuscole/minuscole.

oltre ke includere la libreria stdlib.h per funzionare.

mi risulta che, solitamente, system() sia definita in process.h.

spero di esserti stato utile
ciauz
 
Per utilizzare system() basta includere stdlib.h, se come nel tuo caso accade che su un pc funziona e su un'altro no dovrebbe essere un problema del sistema operativo che non trova il comando "pause".
Comunque i comandi di windows NON sono case sensitive, è possibile scriverli in maiuscolo minuscolo o anche misto, non cambia niente.
La getch() invece è indipendente dal sistema operativo, dunque dovrebbe funzionarti, è inclusa in stdio.h. Se neanche funziona è probabile che il tuo programma termini in modo imprevisto, ma in tal caso dovresti avere un qualche messaggio di errore.
Per capire dov'è il problema dovresti fare 2 cose fondamentalmente:
1- come già è stato detto prova a scrivere 'pause' (senza apici) nel prompt e vedi se ti dice di premere il tasto per continuare.
se non accade nulla è un problema del SO altrimenti è il tuo programma.
2- Se il problema è il tuo programma o posti il codice e vediamo di aiutarti o metti dei breakpoint nel codice e fai il debug, magari tanto per cominciare metti un breakpoint nel punto in cui vorresti la system("pause") e controlla se tutte le variabili sono correttamente inizializzate in quel punto, magari il programma termina per un errore di accesso alla memoria, anche se come ho detto è strano perchè avresti dovuto avere un messaggio di errore in tal caso.
 
Pubblicità
Pubblicità
Indietro
Top