Ciao e Benvenuto.
In questa conferenza, voglio parlare leggere l'input dalla tastiera.
Questo è un concetto di base che io
volevo che imparaste presto perché è molto prezioso e molti programmi ricevono input.
Quindi l'ho fornito all'inizio.
Alcuni dei concetti non lo sono sarà completamente chiaro.
Ma li impareremo sicuramente concetti in altre sezioni man mano che
procediamo, ma è importante imparalo molto presto, ed è molto
simile alla funzione printf.
Quindi abbiamo discusso l'output.
Sappiamo come formattare output utilizzando printf.
Ora dobbiamo imparare un po ' un po 'sull'input, essenzialmente
ottenendo input dall'utente.
È molto utile chiedere all'utente per inserire dati in un programma.
Abbiamo parlato della riga di comando argomenti che inseriscono i dati in questo modo,
questo è un modo per farlo.
Un altro modo è chiedere all'utente direttamente in modo che possano digitare
qualcosa sulla tastiera.
Quindi ottieni l'input da la tastiera, ma viene visualizzato quando si
immette l'input tramite il terminale la console.
È così che inserisci l'input.
La libreria c contiene diverse funzioni di input.
Useremo scanf.
Questa è la funzione più generica.
È molto utile.
Fornisce diversi formati che puoi inserire.
Quindi puoi inserire il testo e poi lo farà vengono convertiti in diversi formati.
Quindi scanf legge l'input dal file flusso di input standard, questo è stdin.
Scanf può effettivamente essere utilizzato per leggere anche da file se il flusso di
input è un file.
Ma non ci preoccuperemo su tutto
ciò per ora, lo useremo solo per leggere l'input dalla tastiera.
Va bene, e così via l'impostazione predefinita è la tastiera.
Stdin è un flusso.
Flussi ec, tre flussi diversi.
Il flusso di errori, standard in e output standard.
Standard in per impostazione predefinita è la tastiera.
Quindi lo manterremo in questo modo.
E usando scanf lo farà leggi dallo standard in e poi in base
a ciò che inserisci o come vuoi memorizzare i
dati, dovrei dire, verranno convertiti quello che hai inserito perché
quello che inserisci sarà testo.
Convertirà quel testo in il formato che hai fornito così.
Utilizzerà gli identificatori di formato proprio come la funzione printf.
Quindi il formato può essere una sequenza di caratteri, che si chiama stringa.
Non l'abbiamo studiato in molti dettagli ancora.
Ma di nuovo, lo faremo quando parliamo di tipi di dati.
E poi puoi anche specificare altri tipi di dati
di cui parleremo come interi, fondamentalmente numeri.
Quindi puoi leggere i numeri.
Puoi leggere le stringhe.
Puoi leggere i numeri che contengono decimali, singoli caratteri individuali,
tutta questa bella roba.
Se lo standard in è input da la tastiera che è l'impostazione predefinita ciò
che accadrà è durante la digitazione del testo tramite la
tastiera, prenderà quel testo, lo metterà nel programma c e convertirà quel testo.
E il testo è cose come lettere, cifre e punteggiatura.
Quindi, anche se stai digitando un numero, è ancora testo perché
proviene dalla tastiera.
Quindi, se inserisci il numero intero 2014, che è un numero e essenzialmente quello che sta succedendo è che
stai digitando caratteri due zero uno e quattro.
E cosa succede e cosa accadrà se aggiungerà
l'input al programma c.
E se vuoi archiviare quei dati come numero, dovrai
convertire quei dati.
E quindi devi specificare il formato specificatore come vuoi convertirlo, proprio
come fai con printf.
Ricorda come con printf che usi percentuale d per stampare un numero intero.
Dovresti convertire il testo in un numero intero che utilizza anche la percentuale d per
scanf, se lo si desidera converte la stringa in un numero.
Ed è quello che stiamo andando da fare per le basi nella fase iniziale.
Useremo solo i numeri perché conosciamo i
numeri fino ad ora e non lo abbiamo davvero imparato a conoscere le stringhe.
Quindi andremo principalmente a usa i numeri quando inseriamo.
Quindi scanf.
È molto simile a printf.
Ma invece è un po 'diverso in alcuni argomenti che ci vuole.
Usa ancora una stringa di controllo seguito da un elenco di argomenti.
Quindi ci sarà qualcosa tra virgolette doppie.
Le virgolette in genere lo faranno contiene solo una cosa e sarà
l'identificatore di formato.
Come convertirai i dati.
Quindi la stringa di controllo indica i tipi di dati di destinazione per il flusso
di caratteri di input.
È quell'identificatore di formato, percentuale d, percentuale c, percentuale s, percentuale f
per flusso e così via.
La funzione printf utilizza la variabile nomi, costanti ed espressioni nei
suoi argomenti perché lo impariamo.
Hai qualcosa tra virgolette doppie.
E poi dentro il doppio virgolette, utilizzi gli identificatori di formato.
E poi, dopo le virgole, tu puoi stampare variabili o
puoi persino stampare espressioni.
Espressioni, ne parleremo anche più dettagli, qualcosa che essenzialmente
restituisce un valore.
Tipo di espressione più comune è un'espressione aritmetica.
La funzione scanf è diversa perché invece di visualizzare
effettivamente le variabili, lo farà utilizzare le variabili a cui si punta.
Ma fortunatamente suggerimenti è un grande concetto in c.
Non devi sapere niente sui puntatori per comprendere e utilizzare
la funzione scanf.
Quindi non preoccuparti di questo.
Va bene, tutto quello che devi fare sei tu è necessario ricordare tre
regole sulla funzione scanf per poterla utilizzare.
Restituirà il numero di elementi che legge correttamente.
Quindi, se legge una variabile, due variabili, tre variabili, lo
restituirà.
Se usi scanf per leggere un valore per uno dei
tipi di variabili di base di cui parleremo, come come int, float, double, quindi tutto ciò che
devi fare è il nome della variabile, l'argomento deve essere preceduto da
una e commerciale.
Non hai nemmeno bisogno di sapere perché questo è giusto
ora, ma fallo, qualsiasi tipo di dati di base.
Ampersand è address.
E poiché scanf accetta un puntatore devi de-referenziare, devi
passare l'indirizzo.
La terza cosa che tu devo ricordare per scanf.
Se usi scanf per leggere un file stringa che è una sequenza di caratteri
in un carattere, tu non è necessario utilizzare la e commerciale.
Quindi fondamentalmente scanf ne richiede due argomenti di cui vi
mostrerò un esempio.
Il primo argomento sarà come per convertire i dati digitati.
E se archivi quei dati in int, usi percent use
specificatore di formato percent d.
Se vuoi memorizzare in string che non abbiamo ancora
imparato, usi percent s.
E poi il secondo argomento è e potrebbero essere molti argomenti a
seconda di quanti specificatori di formato usi perché proprio come printf sarebbe la
variabile effettiva, il nome della variabile.
E se la variabile è tutto tranne una stringa, usi solo la e commerciale.
Altrimenti non lo fai usa la e commerciale.
La funzione Scanf utilizza anche gli spazi bianchi per decidere come dividere
l'input in campi separati.
E lo spazio bianco include nuove righe, tabulazioni e spazi.
E ancora, farò un esempio per mostrarti cosa significa
perché proprio come printf può visualizzarne molti, molte variabili a seconda di
quanti specificatori di formato hai all'interno del file virgolette singole, stessa cosa con scanf.
Se scanf ha più cose tra virgolette
doppie leggerà più input.
E gli input stanno andando da dividere con nuove righe.
Quindi di nuovo, se vuoi provare per capire cos'è scanf,
è l'opposto di printf.
Printf convertirà interi, numeri in virgola mobile, stringhe di caratteri, tutti questi
dati diversi e lo convertirà in testo,
in modo che tu possa vederlo in output.
E lo sarà visualizzato sullo schermo.
Scanf è l'opposto.
Ci vorrà come input testo e convertirlo in uno qualsiasi dei diversi tipi di
dati come int, float e double.
Quindi diamo un'occhiata a un esempio.
Questo è un esempio di il nostro un semplice programma.
Sappiamo qual è la routine principale.
Sappiamo qual è la direttiva "include".
Non ne abbiamo saputo caratteri e numeri interi ancora.
Ma fondamentalmente in cima a quello funzione principale, stiamo creando
due variabili perché abbiamo bisogno di memorizzare i dati e parleremo delle
variabili in modo molto più dettagliato.
Ma proprio come la funzione printf, di nuovo, stai solo facendo l'opposto.
Quindi qui stiamo visualizzando l'output in lo schermo che dice inserire un valore.
Scanf all'interno del doppio virgolette ha specificatori di formato
da leggere nell'input.
E quindi devi specificare il file dati che verranno letti,
qui si dice percentuale s, percentuale d.
Ciò significa che stiamo leggendo in un file string, quindi stiamo leggendo in un int.
E noterai che la stringa non ha la e commerciale e scanf dopo
la prima virgola.
E dopo la seconda virgola, abbiamo un e commerciale perché è un numero intero.
Stiamo leggendo un numero.
E poi il printf sta visualizzando l'output.
Quindi sta dicendo che sei entrato in questo stringa in questo numero intero, proprio
come sappiamo cosa fa printf e quindi la funzione main restituisce uno zero.
Va bene, quindi esaminiamo questo esempio in un secondo in blocchi di codice.
Ma ripetiamolo un paio di concetti.
Quando un programma utilizza scanf per raccoglie input dalla tastiera, attende
che tu inserisca del testo.
Quindi il programma sta effettivamente andando per mettere in pausa fino a quando non si immettono i dati.
E poi una volta inserito del testo.
E se inserisci degli spazi bianchi, se stai inserendo più cose, il
programma procede e legge l'input una volta che hai effettivamente premuto
il pulsante Invio.
Devi premere il pulsante Invio.
Di nuovo, scanf si aspetta un input nel file esattamente lo stesso formato che hai fornito.
Quindi, se dici percento se percento e, ciò significa che devi
fornire una stringa seguita da uno spazio, qualsiasi numero di spazi seguito
da un numero intero, un numero e una parola.
La stringa è una parola Il numero intero è un numero.
Quindi esaminiamo questo esempio riga per riga in blocchi di codice.
Ok, quindi eccoci qui la nostra funzione principale.
E ancora, è importante esserlo in grado di inserire dati in un programma.
Quindi, proprio come il printf, sta andando essere molto simili e non dobbiamo
capire tutto questo codice.
E ci sbarazziamo anche del file parametri che vengono
passati, semplice funzione principale.
Non dobbiamo capire tutto questo codice.
Non dobbiamo nemmeno capire quali sono le variabili a questo punto.
Ma le variabili memorizzeranno i dati.
Nell'esempio, stiamo creando un array di stringhe di 100 e con un punto e virgola e poi
siamo creerà anche un numero intero,
proprio come in printf.
Abbiamo un numero intero, ma stiamo usando una stringa.
Voglio solo dimostrare ingressi diversi.
Quindi di solito prima di te chiama la funzione scanf per ricevere input
dalla tastiera, sei sempre dirà qualcosa all'utente.
Vuoi dire loro cosa inserire.
Quindi printf, ricorda, visualizza i dati sullo schermo.
Diremo solo di inserire un valore.
E lo faranno effettivamente inseriamo una coppia e poi la terminiamo con un
punto e virgola.
Dobbiamo dire al utente per inserire qualcosa.
Ora qui è dove siamo utilizzare la funzione scanf.
Diciamo scanf e poi all'interno del file tra parentesi sta andando il primo
argomento tra virgolette doppie per essere dati che andremo a leggere.
Quindi in questo esempio, facciamo solo diciamo che leggeremo solo un
input per cento d che è un int.
E poi lo faremo memorizzare quei dati in una
variabile perché vogliamo esaminarli.
E sarò io.
Ora dobbiamo specificare la e commerciale prima di allora perché, ricorda, questo piccolo trucco
con i puntatori.
Non devi saperlo perché, è solo l'indirizzo.
Quindi quello scanf, sulla riga 17, sta per legge effettivamente i dati dalla tastiera fino a quando
l'utente non preme il pulsante Invio.
E poi quei dati lo faranno essere memorizzato in una variabile chiamata I.
Quindi ora vogliamo solo farlo stampa quello che abbiamo inserito.
Quindi qui stiamo solo per dire, aggiungeremo un avanzamento riga in modo che sia leggibile,
quindi lo faremo usa la nostra sequenza di escape,
barra rovesciata n e ti diremo.
Hai inserito la percentuale d e stiamo andando per visualizzare il valore della variabile.
E lo faremo anche inserire un avanzamento riga dopo.
Quindi il valore della variabile che vogliamo visualizzare è i.
Stiamo per finire con un punto e virgola.
E poi questo è il nostro programma.
Quindi di nuovo output di stampa, chiedendo un valore, leggendo una riga di input 17 che specifica
che i dati che stiamo reading è un numero intero, memorizzandolo, usando
una e commerciale, e poi stampare quello che abbiamo appena inserito.
Quindi costruiamo questo e eseguiamolo.
E vedrai che il programma si avvia e poi si ferma perché vuole che tu
inserisca un valore.
Dice inserire un valore.
Quindi a questo punto devo inserire un file numero che posso convertire in una stringa perché è quello
che sta succedendo.
Quindi qui sto solo per dire 56.
E poi premerò invio.
Ha funzionato due volte perché il mio scanner antivirus.
Quindi dico 56 e poi entro.
E poi stampa, ho inserito 56.
Quindi sono stato in grado di inserire informazioni, number e lo memorizzava in una variabile.
Ora proprio come printf, puoi effettivamente farli inserire più
cose e memorizzare in più variabili.
Quindi qui dopo che finiscono in un file intero, dirò un'altra percentuale,
identificatore di formato percent s, il che significa che voglio che inseriscano una stringa, che è solo
una ricerca di una parola.
Quindi qui, ricorda, se è una parola, io non è necessario fornire la e commerciale.
Quindi sto solo per dire mescolare, voglio memorizzare quei
dati nell'archivio delle variabili.
E ancora, impareremo a conoscere le variabili.
E poi vado solo per stamparlo.
E ho aggiunto un'altra variabile così conosci il printf e io metto i
due punti prima anche di te per specificare il formato
che stai stampando, quindi sono le percentuali.
Quindi si spera che sia chiaro.
Adesso leggo in due ingressi separati da spazi, memorizzarli in due
variabili, I. e mescolare e poi visualizzarli.
Quindi ora se costruiamo e corriamo.
Quindi qui vado a inserire il mio numero 22, premerò lo spazio e poi inserirò il mio nome e
poi premerò Invio.
Quando lo faccio, il programma si metterà in pausa e
visualizzerà il numero I. inserito e poi la stringa.
Quindi mostra 22 e Jason.
Quindi è così che puoi ottenere input dall'utente, semplici quattro o cinque
righe di codice.
Un'altra cosa veloce che voglio mostrare tu è come puoi leggere in un doppio.
Quindi più avanti nelle lezioni, tu sei verrà mostrato come leggere in float
e che di solito usa un formato specificato percentuale f.
Ma se corri e leggi in doppia, in realtà è
un po 'diverso se usi percent lf, quindi più o meno tienilo in mente.
Se creo un nome di variabile doppia x e poi uso scanf per leggerlo, ho bisogno di
leggerlo usando percent LF.
Questo è il formato specificatore che desideri utilizzare.
E poi di nuovo proprio come il altri, useresti la e
commerciale per indirizzo e diresti x.
E quindi è così che puoi specificamente letto in un doppio.
E questo è diverso che leggere in un flusso.
Quindi tienilo in mente.
Quando andrai a eseguirlo, te ne accorgerai funziona abbastanza semplice.
E puoi leggere l'input leggere un doppio.
Quindi vai avanti e fallo.
E quindi chiederà doppio, non ho fatto davvero molto.
E questo raddoppia come 77. 8 e poi lo leggeremo e lo memorizzeremo,
è abbastanza semplice.
Quindi lo scanf è molto utile come ho detto.
Altre cose con lo scanf noterai mentre segui
il corso che scanf a volte non funziona così bene.
Puoi usare f get s per altre cose.
Il problema principale con scanf è quando leggi, leggi solo finché
non vedi uno spazio.
E quindi se provi a usare scanf, provi a
chiamarlo più volte in una funzione.
Con altre combinazioni, può non funziona molto bene
perché quello che sta succedendo è quando premi il pulsante pulsante
di ritorno sulla tastiera, sta per non farlo leggi quel pulsante di ritorno
perché legge solo una parola.
E quindi non sta andando per ottenere l'avanzamento riga.
Quindi la prossima volta che usi scanf, salterà immediatamente quella riga e
se ne andrà da leggere nel line feed.
Quindi questo è un problema che vedrai se scrivi più
scanfs in un unico programma uno dopo l'altro,
noterai che gli altri scanf non sono in esecuzione perché stanno leggendo nel line feed.
Un modo molto semplice per aggirare questo problema è subito dopo che hai fatto una scansione
se chiami git char e poi chiami un altro scanner, ma è più un concetto
di cui parlare in seguito.
Questo era solo per mostrarti quando leggi in un doppio usando
scanf, assicurati di usare percent LF.
E ancora, questo è utile perché alcune delle nostre sfide ti allineeranno per
ottenere input dall'utente per fare cose utili e apprendere
concetti diversi, lo siamo in grado di ottenere input dall'utente.
Quindi spero che questo abbia aiutato.
E ancora, non preoccuparti per alcuni
di questi concetti che non stai comprendendo appieno le cose come variabili e
stringhe, discuteremo di tutto questo in molti dettagli, grazie.