Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92

    [c] un print indesiderato :(((

    Ciao a tutti sono sempre io , questa volta durante la scrittura di un programma mi sono imbattuto in una cosa curiosa, anzicchè stampare il nome ricevuto come input mi stampa una "F"... come mai??
    Non sto riuscendo a trovare l'errore, anche se sicuramente banale..
    spero lo troviate voi..

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

    #define MAXSTRING 100

    int main(void)
    {

    char c, name[MAXSTRING];
    int i, sum = 0;

    printf(" Hi!!, What's your name?\n\n");
    for (i = 0; (c = getchar()) != '\n'; ++i);
    {
    name[i] = c;
    if (isalpha(c))
    sum += c;
    }
    name[i] = '\0';
    printf("\n%s%s\n\n", "Nice to meet you ", name);
    system("pause");
    return 0;
    }


    Tnx...
    Peppe...

  2. #2
    sum è un int a cui sommi gli ascii dei caratteri letti...

    se quello che volevi fare è concatenare una stringa hai sbagliato strada

  3. #3
    secondo me potresti provare con un ciclo while...
    http://www.mangaitalia.net/

    questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92
    Ho provato a togliere sum ma il risultato nn cambia...
    xciò il problema nn è sum...

  5. #5
    scusami.. ho sbagliato io.. avevo preso fischi per fischi.. credevo volessi concatenare le lettere lette.. pardon..

    beh.. cmq si usa il while per queste cose:


    i = 0;
    while ((c = getchar()) != '\n')
    {
    name[i++] = c;
    if (isalpha(c))
    sum += c;
    }
    name[i] = '\0';


  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92
    Vai guldo abbiamo fatto un passo avanti, ora nn mi stampa niente ehehehe, cmq. ti ringrazio x il consiglio...
    L'ho modificato così:


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

    #define MAXSTRING 100

    int main(void)
    {

    char c, name[MAXSTRING];
    int i = 0, sum = 0;

    printf(" Hi!!, What's your name?\n\n");
    while ((c = getchar()) != '\n');
    {
    name[i++] = c;
    if (isalpha(c));
    sum += c;
    }
    name[i] = '\0';
    printf("nice to meet you %s", name);
    system("pause");
    return 0;
    }

    Ma niente da fare... nn mi stampa niente dopo la frase nice to meet you.... ...

  7. #7
    codice:
    int main(void) 
    { 
    
    char c, name[MAXSTRING]; 
    int i=0, sum = 0; 
    
    printf(" Hi!!, What's your name?\n\n"); 
    do
       { 
       c = getche();
       name[i] = c; 
       i++;
       }while(c!=13);
       
    name[i] = '\0'; 
    printf("\n %s%s \n\n", "Nice to meet you ", name); 
    system("pause"); 
    return 0; 
    }
    così funziona...
    c!= 13 // 13 è il valore che viene resituito quando si preme invio...
    c'è un modo + elegante ma adesso non mi viene

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.