Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [c] x' si chiude automaticamente il programma?

    Ho fatto questo semplice programma x esercizio...

    Date due stringhe le stampa concatenate,

    funziona ma quando lo lancio si chiude automaticamente dopo avermi fornito il risultato...come posso fare x farlo chiudere premendo un tasto qualsiasi o premendo invio?


    ecco il codice:

    #include <stdio.h>
    #include <ctype.h>

    void catstr (

    char str1 [], char str2 []);

    int main ()
    {
    char nome1 [100], nome2 [100];
    printf ("Scrivi la prima parola:\n");
    scanf ("%s",nome1);
    printf ("Srivi la seconda parola:\n");
    scanf ("%s",nome2);
    catstr (nome1, nome2);
    printf ("Il risltato della concatenazione e': %s", nome1);
    getchar ();
    }

    void catstr (char str1 [], char str2 [])
    {
    int i, j;
    for (i=0; str1 [i] != '\0' ; i++);
    for (j=0; str2 [j]!= '\0' ; j++, i++) str1 [i]=str2 [j];
    str1 [i] = '\0';
    }





    Aspetto suggerimenti

  2. #2
    sostituisci

    getchar()

    con

    while(getchar() != '\n') ;

    p.s. non ho provato... ma se la memoria
    non mi inganna dovrebbe essere giusto.
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Oppure:
    system("PAUSE");
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Ho provato con

    while(getchar() != '\n') ;

    ma si chiude subito come prima...




    Mentre con

    system("PAUSE");

    mi dice "Premere un tasto per continuare" quindi ok!



    Grazie ad entrambi, ma secondo voi come mai in certi programmini semplici come questo basta mettere

    getchar ();

    x mantenere la finestra aperta e con altri non funziona?

  5. #5
    Originariamente inviato da __Yrbag83__

    Grazie ad entrambi, ma secondo voi come mai in certi programmini semplici come questo basta mettere

    getchar ();

    x mantenere la finestra aperta e con altri non funziona?
    perchè dove ci sono delle operazioni di I/O (input / output) il buffer di lettura rimane "sporco" e visto che getchar "raccoglie" quanto si trova sullo STDIN(cioè sul buffer in ingresso...di acquisizione/lettura) lo riceve e termina l'esecuzione del programma.
    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    cancello... detto appena sopra!!

  7. #7
    oppure puoi sempre utilizzare una variabile char che alla fine del programma lo metti in attesa di un carattere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.