Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305

    Limitare caratteri per cin o gets

    Sapete se è possibile limitare i caratteri da digitare per cin o gets??

    per esmpio:

    cout<<"Tel.: ";
    gets(tele);

    ........ oppure

    cout<<"Tel.: ";
    cin>>tele;

    In questo modo il prg mi fà digitare al massimo 160 caratteri, mentre vorrei digitarne al massimo 20........ è possibile, oppure c'è un'altra soluzione???
    ..... perchè digitando per esmpio 100 caratteri, in una finestra dos da 25x80 righe, quando, torno al menu, mi ritrovo la coda del buffer stampata a video e ciò non è bello esteticamente, anche facendo prima system("cls") oppure clrscr(); con tc

  2. #2
    certo:

    char s[20], ss[20];
    FILE *p;

    cout << "inserisci CIAO";
    cin.getline(s, 3); // prende solo CI + '\0'
    cout << s << endl;

    p=fopen("prova.txt", "r"); // supponi che contenga "HELLO"
    fgets(ss, 3, p); // legge soltanto HE + '\0'
    cout << ss << endl;
    fclose(p);
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    Si, ok..., questa è uana cosa che comunque mi serviva

    ho spigato male io............

    hai presente il vb, in cui puoi mettere nella casella textbox la proprieta di digitazione massimo 20 caratteri........
    quindi digitando nella text1.text il 21 carattere il prg emette un beep....... ecco...

    Io invece, volevo sapere, se potevo con cin>> o gets, naturalmente sotto dos come applicazione console, fare in modo che non possa digitare + di 20 caratteri e quindi essere costretto a digitare return in quanto + di 20 caratteri non li prende e poi leggere con cin>> o gets cosa ho digitato..............

    questa è una tua routine letta recentemente nel forum
    io l'ho modificata così:

    for(int i=0; i<21; i++) {
    getchar();
    if (getchar()=='\n') {// pulisce il buffer
    //i++;
    goto ava;
    }
    nome[i]=getchar(); // accetta un carattere

    }
    ava:
    nome[i]='\0'; // chiudo la stringa


    ...........ma non riesco a capacitarmi........ ovvero se digito ciao mi estrae io...... mhà!!

    ciao

  4. #4
    così dovrebbe andare:
    codice:
    #include<stdio.h>         // standard I/O C
    #include<stdlib.h>        // system() 
    #include<conio.h>         // getch()
    
    int main()
    {
        char c, i=0, nome[20];
    
        printf("inserisci nome [MAX. 20] : ");         
        while(c!=13)          // [INVIO] per andare a capo
        {
            c=getch();        // accetta un carattere ma non lo visualizza a video
            if(i<20)          // basta aggiungere un contatore... e il gioco è fatto
            {
                nome[i]=c;
                printf("%c", c);
            }
            i++;
        }
        i=0;
        
        printf("\ninserisci cognome [MAX. 20] : ");         
        // ciclo while() ... come sopra
        
        system("PAUSE");
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

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.