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

    [c]come posso interrompere il riempimento di un array appena do invio?

    cioè.. io ho un array... di N interi.. gli faccio inserire tot numeri e appena premo invio lui smette di chiedermi l'inserimento dei numeri...

    vi copio la mia funzione.. e poi spiego cosa vorrei che nn ci fosse.

    codice:
    /*   O1   bin[i]     numero binario da convertire in decimale
         O2   n          lunghezza logica di bin[i]                               */
    void leggiBin(int bin[],int *n){
        int i;
        char c;
            system("cls");
            printf("Inserire la lunghezza del numero binario: ");
            scanf("%d",n);
            printf("\nInserire il numero binario da convertire: ");
            for(i=0;i<*n;i++)
             scanf("%1d",&bin[i]);
    }/*leggiBin*/
    pratticamente.. vorrei fare in modo che lui legga il numero binario.. ed arrivato a \n(invio) si fermi.. in modo da non dover chiedere all' inizio l'inserimento della lunghezza logica.


    grazie!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    usi una stringa che poi converti in int

  3. #3
    asp.. mi sono scordato uan roba... allora io conosco le seguenti cose:

    tipi interi, float, double, charù

    if else iterazione
    for ciclo a contatore
    while ciclo a condizione iniziale
    do-while ciclo a condizione finale
    switch

    array a 1 e + dimensioni

    funzioni con passaggio per copia e valore...

    e poi mi pare basta... quindi niente stringhe ecc... perchè poi il programma lo devo presentare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    usa un ciclo do while dove a condizione finale metti diverso da invio

  5. #5
    codice:
          do{
             scanf("%1d",&bin[i++]);
             }while(bin[i-1]!='\n');
    io ho fatto così.. ma nn va.

    perchè l'array bin è di interi.. forse...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    prova ad usare

    codice:
    do{
    }while(cin.getline()!='\n')

    comunque per String intendevo char.
    Puoi leggere un char poi con un ciclo for parti dalla prima all'ultima pos della stringa-1 e copi nell'array

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    guarda questo link sulle stringhe

    http://www.dis.uniroma1.it/~degiacom...-10/stringhe.c

  8. #8
    Originariamente inviato da perzem
    guarda questo link sulle stringhe

    http://www.dis.uniroma1.it/~degiacom...-10/stringhe.c
    anche se so le stringhe ciò nn toglie che nn posso metterle nell 'esercizio

  9. #9
    proprio niente? peccato

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Prova a vedere questo... a me funziona perfettamente:
    codice:
    #include <stdio.h>
    
    int main() {
       char numeri[80];   /* Dimensione massima consentita */
       char carattere;
       int i = 0;
       int j = 0;
       
       while ((carattere = getch()) != 13) {
          putchar(carattere);
          numeri[i++] = carattere;
       }
       
       printf("Numero caratteri inseriti: %d\n", i);
       printf("Questi sono i caratteri:\n");
       for (j=0; j<i; j++) putchar(numeri[j]);
       
       return 0;
    }
    Attenzione che se l'utente inserisce più di 80 caratteri rischi un Segmentation Fault.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.