|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[C] Aiutino per semplice esercizio che non viene
Ciao,
a laboratorio di programmazione ci è stato dato da fare questo semplice esercizio: scrivere un programma che usi la funzione getchar, che legga dei caratteri sulla shell di linux e che conti quanti caratteri, quate parole e quante righe sono state inserite. Dove la aprte sul numero dei caratteri funziona ma la parte sulle parole (incrmenta la var parole ogni carattere spazio che viene inserito) e la parte sulle righe (incrementa la variabile righe ogni volta che si preme invio) non funziona..dà 2 warning in fase di compilazione e quando lo vado ad eseguire questi due valori stanno sempre a 0....per favore potete aiutarmi a risolvere...la logica dovrebbe essere giusta...probabilmente sbaglio qualcosa nel contornto nelle due if Codice:
#include <stdio.h> int main(){ int caratteri = 0; int parole = 0; int righe = 0; int corrente; corrente = getchar(); // Leggi il primo carattere dalla tastiera while(corrente != EOF){ caratteri ++; // Incrementq il numero di caratteri letti if(corrente == " ") parole ++; // Ad ogni spazio incrementa il numero delle parole scritte if(corrente == "\n") // Ad ogni invio incrementa il numero di righe righe ++; corrente = getchar(); // Leggi un nuovo carattere dalla tastiera } printf("\nSono stati letti: %d caratteri dalla tastiera\n", caratteri); printf("\nIl numero di parole corrisponde a: %d\n", parole); printf("\nIl numero di righe corrisponde a: %d\n\n", righe); return 0; } Andrea |
![]() |
![]() |
![]() |
#2 | ||
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
Quote:
I caratteri singoli si scrivono tra apici semplici, quindi i confronti vanno fatti con ' ' e '\n' rispettivamente.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
![]() |
![]() |
![]() |
#3 | |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
Quote:
quindi se io faccio int variabile; // dichiaro una variabile int variabile = 'a'; // metto il valore numerico associato al carattere a in variabile? Ancora grazie Andrea |
|
![]() |
![]() |
![]() |
#4 | |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:09.