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
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
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.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>
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
Guarda ... senza contare include, dichiarazione del main, ecc... sono 13 righe di codice. Se te le scrivo io .... non vale.Originariamente inviato da valer_85
sisi è come dici tu! nn è ke potresti farmi vedere come fare?
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
In questo "esercizio" non c'entrano granché i puntatori ...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?
Una traccia:
codice:.... char buffer[200]; .... while (fgets (buffer, sizeof (buffer), stdin) != NULL) { .... } ....
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
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
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?
In questo caso strtok non serve a molto ... se non a complicarti la vita.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()...
ok allora credo di esserci...
ecco un primo approccio
il problema è questo: non riesco a capire 2 cose: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"); } } }
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
Nooooo, il main non lo puoi dichiarare così:Originariamente inviato da valer_85
il problema è questo: non riesco a capire 2 cose:
1.come faccio a passargli il numero della linea?
Devi dichiararlo in questo modo:codice:main(int riga)
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.
Se metti un else al if(i==riga), in questo else ci entra per tutte le righe che non sono quella da te richiesta.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 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.