Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [c] Scanf inizializzato

    Sto cercando di fare una cosa in C che concettualmente è semplicissima ma non sono riuscito a farla.

    Vorrei creare uno scanf inizializzata. In altre parole vorrei inserire dei valori nel buffer di input prima di invocare lo scanf.

    Ovviamente quello che deve contenere lo scanf deve essere modificabile.

    Aiutatemi non so più dove sbattere la testa

    Grazie mille per eventuali aiuti...
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

  2. #2
    linguaggio anche nel titolo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    non ho capito bene, posta un esempio (un pò di codice)
    ...Terrible warlords, good warlords, and an english song

  4. #4
    Vorrei fare una cosa simile:
    codice:
    char *new_scanf(void){
        char c[5]="testo";
        char d[5];
        fprintf(stdin,"%s",c);
        scanf("%5s",&d);
        return(d);
    }
    Cioè quando vado ad invocare scanf vorrei che già assumesse il valore "testo".

    Come un textbox inizializzato.
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

  5. #5
    mah, forse sono io a non capire, ho comunque
    raggirato il problema nel seguente modo:
    codice:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main()
    {
        char str[] = "testo"; /* 't','e','s','t','o','\0' == 6 (non 5) */
        char var[6] = "\0";
        char c = '\0', i = 0;
        
        printf("Inserisci una stringa: ");
        
        while( (c = getchar()) != '\n' ) // prova a premere [invio] senza inserire nulla
        {
            var[i] = c;
            i++;
        }
                
        if(var[0] == '\0') strcpy(var, str);
            
        printf("VAR: %s\n", var);
        system("pause");
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

  6. #6
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    int main()
    {
    char str[] = "testo"; /* 't','e','s','t','o','\0' == 6 (non 5) */
    char var[6] = "\0";
    char c = '\0', i = 0;

    printf("Inserisci una stringa: ");

    while( (c = getchar()) != '\n' ) // prova a premere [invio] senza inserire nulla
    {
    var[i] = c;
    i++;
    }

    if(var[0] == '\0') strcpy(var, str);

    printf("VAR: %s\n", var);
    system("pause");
    return 0;
    }
    Questo è una soluzione semplice.

    Vorrei inserire direttamente nello scanf un valore di default:

    Esempio:

    Inserisci una stringa: testo
    si deve poter modificare la scritta "testo"






    Credevo che era una cosa semplice da fare.

    Ora non ne sono più convinto. VVoVe:
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

  7. #7
    non credo che alla funzione scanf() sia possibile passare un
    valore di default... puoi comunque crearti una scanf() rivista, tipo questa:
    codice:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    void *initScanf(char *s, char *d)
    {
        char c = '\0', i = 0;
        
        while( (c = getchar()) != '\n' ) // prova a premere [invio] senza inserire nulla
        {
            s[i] = c;
            i++;
        }
                
        if(s[0] == '\0') strcpy(s, d);
    }    
    
    int main()
    {
        char var[6] = "\0";
            
        printf("Inserisci una stringa: ");
        
        initScanf(var, "DEFAULT"); // se non inserisci nulla restituisce la stringa "DEFAULT"
                
        printf("VAR: %s\n", var);
       
        system("pause");
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

  8. #8
    Può darsi che sono poco chiaro nello spiegarmi.

    Io Vorrei realizzare una sorta di textbox e assegnarli un valore iniziale. L'utente può scegliere se confermare quel valore (premendo il tasto invio) altrimenti può cancellarlo (in parte o totalmente) e inserirlo uno nuovo.

    Capito ora qual'è il mio problema? VVoVe: :maLOL:
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

  9. #9
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da Stratus
    Può darsi che sono poco chiaro nello spiegarmi.

    Io Vorrei realizzare una sorta di textbox e assegnarli un valore iniziale. L'utente può scegliere se confermare quel valore (premendo il tasto invio) altrimenti può cancellarlo (in parte o totalmente) e inserirlo uno nuovo.

    Capito ora qual'è il mio problema? VVoVe: :maLOL:
    Tramite le librerie standard del C non c'e' modo di farlo... Che sappia io
    Devi farlo usando altre librerie...
    Ad esempio cerca info sulle NCurses...

    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  10. #10
    Tramite le librerie standard del C non c'e' modo di farlo... Che sappia io
    Devi farlo usando altre librerie...
    Ad esempio cerca info sulle NCurses...

    Ma le NCurses non funzionano solo sotto linux?
    Gli strati della mia mente sono incomprensibili per voi poveri MORTALI!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.