Strano caso

Pagina 1 di 2 1 2 ultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    bit
    Registrato
    Apr 2004
    Messaggi
    28

    Predefinito Strano caso

    Salve ragazzi,
    Oggi nel programma che stavo svolgendo in C ho trovato uno strano errore in run.
    Le istruzioni incriminate sono:

    printf("Inserisci il testo: ");
    gets(text);
    printf("\nInserisci la parte da cercare: ");
    gets(pattern);

    Il risultato dovrebbe essere l'acquisizione di due stringhe ma invece mi da il seguente output:

    Inserisci il testo:
    Inserisci la parte da cercare:

    Con il puntatore fermo dopo il secondo messaggio. cioé non mi da la possibilità di inserire la string per il testo.

    Qualcuno puo aiutarmi???
    Grazie

  2. #2

    Predefinito

    #include "stdio.h"
    int main()
    {
    char* text[100];
    char* pattern[100];
    printf("Inserisci il testo: ");
    gets(text);
    printf("\nInserisci la parte da cercare: ");
    gets(pattern);
    printf("%s %s",&text,&pattern);
    return(0);
    }

    Xony, funziona benissimo, hai qualche problema nelle righe precedente che hai scritto, magari posta anche quelle e vediamo un pò.

    ciao.

  3. #3

    Predefinito

    ok anche se sono le 23 e ho bevuto un pochino ho capito, metti flushall(); all'inizio del codice che hai scritto e vedrai che funziona.

  4. #4
    bit
    Registrato
    Apr 2004
    Messaggi
    28

    Predefinito

    Originally posted by maniac75
    ok anche se sono le 23 e ho bevuto un pochino ho capito, metti flushall(); all'inizio del codice che hai scritto e vedrai che funziona.
    Ho provato con il flushall(), ma non mi compila il file. Io sto usando c puro (nomefile.c).

    Se conosci la stessa istruzione per il c...

  5. #5
    bit
    Registrato
    Apr 2004
    Messaggi
    28

    Predefinito

    Il frammento di codice di seguito proviene da un costrutto switch()

    case 4:
    {
    char text[MAX_LENGTH_STRING];
    char pattern[MAX_LENGTH_STRING];
    int IsPresent = 0;

    printf("\fInserisci il testo: ");
    gets(text);
    printf("\nInserisci la parte da cercare: ");
    gets(pattern);

    IsPresent = sottostringa(pattern, text);

    if(IsPresent)
    printf("\nLa stringa e' presente nel testo.");
    else
    printf("\nLa stringa non e' presente nel testo.");
    break;
    }

    Se non sbaglio l'istruzione flushall(), svuota il buffer.

  6. #6

    Predefinito

    #include "stdio.h"
    #define MAX_LENGTH_STRING 100

    int main()
    {
    char text[MAX_LENGTH_STRING];
    char pattern[MAX_LENGTH_STRING];
    int IsPresent = 0;
    int x = 4;

    flushall();

    switch(x){
    case 4:
    printf("\nInserisci il testo: ");
    gets(text);
    printf("\nInserisci la parte da cercare: ");
    gets(pattern);
    IsPresent=1;
    break;
    }

    if(IsPresent)
    printf("\nLa stringa e' presente nel testo.");
    else
    printf("\nLa stringa non e' presente nel testo.");

    return(0);
    }

    xony, funziona bene anche senza flushall(), comune flushall(), la funzione che come hai detto serve per svuotare il buffer della tastiera, è definita in stdio.h di ogni compilatore C. che compilatore usi? probabilmente hai scritto qualche carattere maiuscolo o senza ; controlla bene. Comunque in questo caso non serve quindi Nel caso posta altro codice scritto precedentemente.

    ciao

  7. #7
    bit
    Registrato
    Apr 2004
    Messaggi
    28

    Predefinito

    Io uso il dev c++. 4.9.8.0
    Il progr te lo passo in pvt perchè ci sono molte righe di codice

  8. #8
    bit
    Registrato
    Apr 2004
    Messaggi
    28

    Predefinito

    Ciao Mania75
    Ti sono arrivati i messaggi?

  9. #9

    Predefinito

    Ok, xony, ti rispondo in giornata, ciao

  10. #10

    Predefinito

    Ok, Xony, il problema è del buffer della tastiera e come ti ho
    detto si risolve con flushall() ma stranamente nel compilatore
    dev c++ la funzione non c'e'. quindi ovviamo con la riga di
    sotto che devi inserire subito dopo "case 4 : {"

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

    ciao.

Pagina 1 di 2 1 2 ultimo

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Discussioni simili

  1. 6800 GT @431/1141 MHz e "Caso strano"
    By Pelvix in forum -= Schede video e acceleratori =-
    Risposte: 8
    Ultimo messaggio: 17-04-2005, 22:10
  2. Collocazione ram su motherboard.. uno strano caso!!
    By BloodFlowers in forum -= Hardware generico =-
    Risposte: 11
    Ultimo messaggio: 16-05-2004, 11:43
  3. Collocazione ram su motherboard.. uno strano caso!!
    By BloodFlowers in forum -= Hardware generico =-
    Risposte: 3
    Ultimo messaggio: 18-04-2004, 16:50
  4. Caso Wineblock
    By ^SiRtA^ in forum -= Overclocking e CPU =-
    Risposte: 0
    Ultimo messaggio: 17-07-2002, 15:50
  5. AXIA0108y un caso un po' strano....
    By imported_MadMax in forum -= Overclocking e CPU =-
    Risposte: 6
    Ultimo messaggio: 23-06-2001, 10:21

Tags

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022