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

    [C] selezione di linee da file di testo

    ciao a tutti. ecco il mio problema:
    dato un testo in standard input, devo scrivere in standard output la linea di codice specificata come argomento di ingresso...
    del tipo:

    selezlinea <numerolinea>

    grazie
    V+K

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C] selezione di linee da file di testo

    Originariamente inviato da valer_85
    ciao a tutti. ecco il mio problema:
    dato un testo in standard input, devo scrivere in standard output la linea di codice specificata come argomento di ingresso...
    del tipo:

    selezlinea <numerolinea>
    Quindi in pratica devi stampare in output solo la riga richiesta, giusto?? Semplice: tieni un contatore di riga e poi con la fgets leggi riga x riga, quando trovi la riga richiesta la stampi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    sisi è come dici tu! nn è ke potresti farmi vedere come fare?

    perchè oggi è il primo giorno di programmazione c e sto cercando di apprendere 120 pagine di manuale in 1 ora..
    grazie
    V+K

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da valer_85
    sisi è come dici tu! nn è ke potresti farmi vedere come fare?
    Guarda ... senza contare include, dichiarazione del main, ecc... sono 13 righe di codice. Se te le scrivo io .... non vale.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    dai solo alcuni indizi altrimenti nn saprei proprio come muovermi... ancora nn capisco bene come cavolo funzionano i puntatori! era tanto bello java...

    p.s.: in questo devo usare i puntatori?
    V+K

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da valer_85
    dai solo alcuni indizi altrimenti nn saprei proprio come muovermi... ancora nn capisco bene come cavolo funzionano i puntatori! era tanto bello java...

    p.s.: in questo devo usare i puntatori?
    In questo "esercizio" non c'entrano granché i puntatori ...

    Una traccia:
    codice:
    ....
    
    char buffer[200];
    
    ....
    
    while (fgets (buffer, sizeof (buffer), stdin) != NULL)
    {
        ....
    }
    
    ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    grazie!
    allora...
    in buffer ci và il testo inserito in standard input giusto? che viene letto da fgets?
    come faccio a leggere il testo da standard input riga x riga?

    posso leggere tutti i caratteri con strtok() e poi quando trovo \n capisco ke è una nuova riga... xò nn so come si usa strtok()...
    V+K

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da valer_85
    in buffer ci và il testo inserito in standard input giusto? che viene letto da fgets?
    come faccio a leggere il testo da standard input riga x riga?
    La fgets nel mio esempio legge 1 riga dallo standard input (stdin). Con il while, ripete la lettura di 1 riga finché ci sono righe.

    Originariamente inviato da valer_85
    posso leggere tutti i caratteri con strtok() e poi quando trovo \n capisco ke è una nuova riga... xò nn so come si usa strtok()...
    In questo caso strtok non serve a molto ... se non a complicarti la vita.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    ok allora credo di esserci...
    ecco un primo approccio

    codice:
    include<stdio.h>
    main(int riga){
       char buffer[200];
       int i=0;
       while (fgets (buffer, sizeof (buffer), stdin) != NULL) {
    	   i++;
    	   if(i==riga) {
    		   printf("bravo");
    	   }
    
    }
    
    }
    il problema è questo: non riesco a capire 2 cose:
    1.come faccio a passargli il numero della linea?
    2.come faccio a inserire un testo se ogni volta ke faccio invio il prog mi dà il risultato della computazione? nel senso, ogni volta ke faccio invio mi scrive o "bravo" o qualcos'altro ke verrebbe fuori se faccio else if (i!=riga)...

    grazie ancora
    V+K

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da valer_85
    il problema è questo: non riesco a capire 2 cose:
    1.come faccio a passargli il numero della linea?
    Nooooo, il main non lo puoi dichiarare così:
    codice:
    main(int riga)
    Devi dichiararlo in questo modo:

    a) se non hai bisogno di argomenti: int main (void)

    b) se hai bisogno di argomenti: int main (int argc, char *argv[])

    dove:
    - argc indica il numero di elementi nell'array argv
    - argv è un array di puntatori a stringhe in cui ci sono gli argomenti passati al programma
    - il primo elemento in argv (quindi argv[0]) è sempre il nome dell'eseguibile.

    Devi quindi testare se c'è un parametro e poi convertirlo in numero.

    Originariamente inviato da valer_85
    2.come faccio a inserire un testo se ogni volta ke faccio invio il prog mi dà il risultato della computazione? nel senso, ogni volta ke faccio invio mi scrive o "bravo" o qualcos'altro ke verrebbe fuori se faccio else if (i!=riga)...
    Se metti un else al if(i==riga), in questo else ci entra per tutte le righe che non sono quella da te richiesta.
    Se vuoi stampare un messaggio per dire ad es. che la riga non è stata trovata, devi mettere un flag inizialmente a zero, se trovi la riga lo metti es. a 1 e una volta finito il while, lo testi e stampi che non è stata trovata la riga.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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.