Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Dal richiamo di Enrico Letta alla necessità di completare il mercato unico entro il 2028 alla visione di Nokia sul ruolo dell’IA e delle reti intelligenti, il Nokia Innovation Day 2025 ha intrecciato geopolitica e tecnologia, mostrando a Vimercate come la ricerca italiana contribuisca alle sfide globali delle telecomunicazioni
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-06-2008, 18:20   #1
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
[C]-Domande da principiante

Visto ke ho appena iniziato a programmare in C posterò i miei eventuali dubbi su qst topic.


E' giusto secondo voi qst programma??

#include <stdio.h>
main ()
{
int sb,cn,ct,c;
sb=0; /* contatore spazi bianchi */
cn=0; /* contatore spazi newline*/
ct=0; /* contatore caratteri tabulazioni */
while ((c=getchar()) !=EOF)
if(c == ' ')
++sb;
printf("%d\n", sb);
if(c== '\n')
++cn;
printf("%d\n", cn);
if(c== '\t')
++ct;
printf("%d\n", ct);

}


Il primo printf funzia alla perfezione gli altri 2 danno sempre valore 0 in qualunque caso....c'è qualcuno ke sa aiutarmi??
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 19:29   #2
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
mancano le graffe del while.. esegue solo il primo if
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 19:37   #3
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Avevo provato a metterle xò mettendole quando scrivo qualcosa e do l'invio escono fuori una serie di numeri uno sotto l'altro.


Secondo voi x scrivere il seguente programma come dovrei agire??

Scrivere un programma i cui dati in uscita replichino i dati in ingresso sostituendo xò una stringa di 1 o più spazi bianchi con uno spazio singolo....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 19:45   #4
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
no mettile ma dentro le graffe lascia solo gli incrementi dei counter.. le stampe mettile fuori ovviamente..
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 23:32   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Intanto usa il tag code, così mantieni l'indentazione anche qui sul forum. Fatto questo mettere le graffe è semplice, basta che ce ne sia una aperta prima di un rientro ed una chiusa alla fine dello stesso rientro (sempre se l'hai indentato correttamente). Le graffe sono superflue solo quando il blocco indentato è di una sola istruzione.

Seconda cosa, per poter replicare ciò che leggi da tastiera sei sulla giusta strada, c'è però un problema, nelle printf "%d" indica che vuoi stampare un intero, per questo ottieni dei numeri, se vuoi vedere i caratteri ascii corrispondenti devi usare "%c"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 21:51   #6
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
C'è qualcuno in grado di darmi un input a qst problema:

Scrivere un programma i cui dati in uscita replichino i dati in ingresso sostituendo xò una stringa di 1 o più spazi bianchi con uno spazio singolo....

Praticamente se trovo 2 spazi bianchi vicini devo eliminarne 1 e stamparne solo 1.
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 22:06   #7
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Visto ke ho appena iniziato a programmare in C posterò i miei eventuali dubbi su qst topic.

un input a qst problema
Di solito sui forum si pone una domanda per thread ed è buona norma evitare le abbreviazioni da SMS, qui non si pagano i caratteri in eccesso e l'unico effetto di contrarre le parole è peggiorare la leggibilità del post.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 22:15   #8
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da 88MIKI88 Guarda i messaggi
C'è qualcuno in grado di darmi un input a qst problema:

Scrivere un programma i cui dati in uscita replichino i dati in ingresso sostituendo xò una stringa di 1 o più spazi bianchi con uno spazio singolo....

Praticamente se trovo 2 spazi bianchi vicini devo eliminarne 1 e stamparne solo 1.
Un aiutino, il problema è molto semplice:
Immagina di avere due stati:
A-nessuno spazio bianco letto
B-letto uno spazio bianco

se sei in A leggendo un carattere non spazio resti in A e stampi il carattere letto, leggendo uno spazio vai in B e stampi il primo spazio.
da B leggendo uno spazio resti in B senza stampare nulla, leggendo un carattere passi in A e stampi il carattere.

Puoi ricreare questa FSA in questo modo:
Codice:
...
while(c = getCh()){
 if(c==' '){
  print c;
  while(c == ' '){//Scarto i ' ' in eccesso
   c = getCh();
   }
  }
  print c;
}
...
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 22:34   #9
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da wisher Guarda i messaggi
Un aiutino, il problema è molto semplice:
Immagina di avere due stati:
A-nessuno spazio bianco letto
B-letto uno spazio bianco

se sei in A leggendo un carattere non spazio resti in A e stampi il carattere letto, leggendo uno spazio vai in B e stampi il primo spazio.
da B leggendo uno spazio resti in B senza stampare nulla, leggendo un carattere passi in A e stampi il carattere.

Puoi ricreare questa FSA in questo modo:
Codice:
...
while(c = getCh()){
 if(c==' '){
  print c;
  while(c == ' '){//Scarto i ' ' in eccesso
   c = getCh();
   }
  }
  print c;
}
...
Per me sto C è arabo.. ma come vi convincete??
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 15:21   #10
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
#include<stdio.h>

main ()
{
int c;
while (c=getchar()!=EOF)
{
if(c== ' ') {
printf ("%c", c);

while (c==' ')
c=getchar();
}
printf("%d",c);
}

}

Il codice è qst e come sintassi c'è visto ke il debugger nn dà errori xò il programma stampa solo 1....come mai????
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 15:35   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Usa il tag CODE, e nell'ultima printf stai ancora usando %d
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 15:49   #12
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Sta di fatto ke nn esce ankora.......escono delle faccine....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 16:16   #13
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
C'è un errore nel while, dovrebbe essere:
Codice:
while ((c=getchar())!=EOF)
Senza le parentesi mette in "c" il risultato del confronto "getchar()!=EOF"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 18:42   #14
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Ultimo esercizio di questo capitolo finalmente!

Scrivere un programma in cui i dati in ingresso siano uguali a quelli in uscita sostituendo però \b ad ogni backspace, \t ad ogni tabulazione e \\ ad ogni backslash....

Francamente quando ho letto il testo mi sono detto "questo esercizio è una cazzata!!"

Poi invece analizzandolo x bene non è così o almeno c'è solo un piccolo problema nelle stampe.... per stampare \b, \t, \\ come posso fare?? All'inizio ho pensato di andare a vedere se c'è un codice corrispondente in ASCII xò nn so nn mi sembra la strada giusta.....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 23:59   #15
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Non esiste un carattere specifico per stampare "\b", "\t" e "\\", semplicemente li devi stampare così come stringhe costanti. Occhio però che se scrivi:
Codice:
printf("\t");
Non verrà stampato "\t" ma un carattere di tabulazione, per stampare "\t" devi aggiungere una '\' prima:
Codice:
printf("\\t");
E così anche per le altre stringhe:
Codice:
printf("\\b");
printf("\\\\");
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 14:05   #16
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Sta di fatto che con i backslash non funziona.....se tu fai:

if ( c == '\') il compilatore impazzisce e ti inizia a trovare errori.

per farlo andare devo fare:

if (c=='\\') {
printf("\\\\")
}

in cui vengono stampati 3 backslash al posto di 2....c'è qualcuno che mi sa dire il perchè?
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 16:03   #17
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Perché il backslash è un carattere di escape, se tu scrivi \' viene interpretata come una virgoletta e non come l'apice finale che racchiude un carattere, quindi per il compilatore c'è una sequenza mai terminata (ecco il perché degli errori).

Probabilmente c'è una stampa in più, se vedi 3 backslash (o la prima è quella ricevuta in input).
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 16:43   #18
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Risolto il problema del backslash ne avevo messo uno in più :P

Sta di fatto che devo ancora risolvere quello del backspace

io ho scritto:

if (c == '\b') {
printf("\\b");

la sintassi è giusta soltanto che non funziona come dovrebbe.....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 00:26   #19
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
La risposta molto probabilmente è qui: LINK
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
SpaceX guarda ai primi voli orbitali del...
Il prototipo del razzo spaziale riutiliz...
Blue Origin mostra uno spettacolare vide...
Roscosmos: la capsula Bion-M2 è r...
ASUS sperimenta GPU senza connettori di ...
La Cina conquisterà lo spazio ent...
Samsung ha un nuovo entry level: debutta...
Caos nei cieli europei: attacco informat...
Volkswagen ferma la produzione di ID.Buz...
Super sconti del weekend Amazon: 5 novit...
Dreame non si ferma più: tra le n...
Samsung Galaxy Buds3 FE a meno di 95€ su...
Praticamente regalate: 135€ per le Squie...
Si rinnovano i coupon nascosti di settem...
Amazon sconta i componenti: occasioni d'...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v