Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Compilatore Dev C

  1. #1

    Compilatore Dev C

    Salve ho alcuni problemi con il Dev C:

    -) Il primo è che l'ho installato su due PC; su uno è OK, mentre su
    quell'altro non riesco a far eseguire il file compilato utilizzando
    ilcomando Esegui-->Esegui (Ctrl F10), ma devo cliccare sul file
    eseguibile generato dal processo di compilazione

    -) Il secondo riguarda l'istruzione scanf("%s",stringa), dove ovviamente
    stringa è un array di char.... tutto è ok se la stringa inserita non
    contiene spazi, mentre se immetto spazi (pur non superando la lunghezza
    massima dell'array il comportamento del programma è imprevedibile;
    mentre se rimpiazzo la scanf(...) con il seguente codice:

    while((c=getchar())!='\n')
    stringa[i++]=c;

    Tutto funziona regolarmente.
    Come mai ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per la scanf è normale perché lo spazio indica che l'input è terminato. Altrimenti dovresti usare la fgets

    Per DevC++ non so cosa dirti a parte il fatto che è veramente sconsigliato il suo uso.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Per la scanf è normale perché lo spazio indica che l'input è terminato. Altrimenti dovresti usare la fgets

    Per DevC++ non so cosa dirti a parte il fatto che è veramente sconsigliato il suo uso.
    Scusami, ma il carattere di fine stringa non è '\0' ?
    Per DevC++, cosa mi consiglieresti come alternativa ?
    Grazie mille per le risposte

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da DVX70 Visualizza il messaggio
    Scusami, ma il carattere di fine stringa non è '\0' ?
    Il terminatore di stringa è un discorso completamente diverso.
    Quote Originariamente inviata da DVX70 Visualizza il messaggio
    Per DevC++, cosa mi consiglieresti come alternativa ?
    Puoi usare ad esempio Visual Studio express o Code::Blocks, ma esistono molte altre alternative.
    Nel caso tu voglia un compilatore compatto per C, senza il supporto C++, puoi provare anche Pelles C.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Sì, il carattere di fine riga è quello, ma non c'entra nulla in questo caso: chi ha scritto scanf() ha deciso che legge fino allo spazio. E' così, fine*

    * In realtà usando scanf("%[a-z A-Z0-9]", s); puoi leggere intere frasi ma in questo caso è meglio usare fgets()
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.