Cześć i witaj.
W tym wykładzie chcę porozmawiać odczyt wejścia z klawiatury.
To jest podstawowa koncepcja, którą ja chciałem, żebyście
się wcześnie nauczyli, ponieważ jest to bardzo cenne i wiele programów pobiera dane wejściowe.
Więc dostarczyłem to wcześnie.
Niektóre koncepcje nie są będzie całkowicie jasne.
Ale na pewno się tego nauczymy koncepcje w innych sekcjach, przez które przechodzimy,
ale jest to ważne naucz się tego bardzo wcześnie i jest bardzo
podobny do funkcji printf.
Więc omówiliśmy dane wyjściowe.
Wiemy, jak formatować wyjście za pomocą printf.
Musimy się teraz trochę nauczyć trochę o danych wejściowych, zasadniczo
uzyskując informacje od użytkownika.
Bardzo przydatne jest zapytanie użytkownika do wprowadzania danych do programu.
Rozmawialiśmy o linii poleceń argumenty wprowadzające dane w ten sposób,
to jeden ze sposobów.
Innym sposobem jest zapytanie użytkownika bezpośrednio, aby mogli coś
wpisać na klawiaturze.
Więc otrzymujesz dane wejściowe z klawiatura, ale zostanie wyświetlona, wprowadź
dane wejściowe za pośrednictwem terminala w konsoli.
W ten sposób wpisujesz dane wejściowe.
Biblioteka c zawiera pliki kilka funkcji wejściowych.
Użyjemy scanf.
To najbardziej ogólna funkcja.
To jest bardzo użyteczne.
Zapewnia różne formaty, które możesz wprowadzić.
Możesz więc wpisać tekst, a potem to zrobi konwertować do różnych formatów.
Więc scanf czyta dane wejściowe z pliku standardowy strumień wejściowy, to jest standardowe wejście.
Scanf może być faktycznie używany do odczytywanie również z plików, jeśli strumień
wejściowy jest plikiem.
Ale nie będziemy się martwić na
razie o tym wszystkim, po prostu to wykorzystamy odczytać dane wejściowe z klawiatury.
Okej, więc idź dalej Domyślnie jest to klawiatura.
Stdin to strumień.
Strumienie ic, trzy różne strumienie.
Strumień błędów, standard i standardowe wyjście.
Domyślnie w standardzie to klawiatura.
Więc zamierzamy tak trzymać.
I używając scanf to zrobi czytaj ze standardu w, a następnie na podstawie
tego, co wprowadzasz lub w jaki sposób chcesz przechowywać
dane, powinienem powiedzieć, że zostaną przekonwertowane to, co wpisałeś, ponieważ
to, co wprowadzisz, będzie tekstem.
Zamierza przekonwertować ten tekst na podany przez Ciebie format.
Będzie używać specyfikatorów formatu podobnie jak funkcja printf.
Więc format może być sekwencją znaków, które nazywa się ciągiem znaków.
Nie badaliśmy tego jeszcze szczegółowo.
Ale znowu, kiedy to zrobimy mówimy o typach danych.
A następnie możesz określić inne typy danych, o których będziemy
mówić, takie jak liczby całkowite, w zasadzie liczby.
Więc możesz czytać liczby.
Możesz czytać ciągi.
Możesz przeczytać liczby, które zawierają cyfry po przecinku, pojedyncze pojedyncze znaki,
cała ta fajna rzecz.
Jeśli standardem jest wejście z klawiatura, która jest domyślna, będzie się odbywać
podczas wpisywania tekstu za pomocą klawiatury pobierze ten tekst
i umieści go w programie c i skonwertuje ten tekst.
A tekst to takie rzeczy litery, cyfry i znaki interpunkcyjne.
Więc nawet jeśli piszesz liczba, to nadal tekst, ponieważ
pochodzi z klawiatury.
Jeśli więc wpiszesz liczbę całkowitą 2014, czyli liczba i zasadniczo dzieje się to, że piszesz
znaki dwa zero jeden i cztery.
A co się stało i co stanie się, jeśli doda wyślij
to wejście do programu c.
A jeśli chcesz przechowywać te dane jako liczba, będziesz musiał
przekonwertować te dane.
Musisz więc określić format specyfikator, w jaki sposób chcesz go przekonwertować, tak
jak robisz to na printf.
Pamiętaj jak z printf, którego używasz procent d, aby wydrukować liczbę całkowitą.
Przekonwertowałbyś tekst na liczba całkowita używająca również procenta d dla
scanf, jeśli chcesz przekonwertować ciąg na liczbę.
I tym właśnie idziemy zrobić dla podstaw na początku.
Użyjemy tylko liczb ponieważ do tej
pory znamy liczby, a tak naprawdę nie dowiedziałem się jeszcze o strunach.
Więc mamy zamiar głównie używaj liczb, kiedy wprowadzamy.
Więc scanf.
Jest bardzo podobny do printf.
Ale zamiast tego jest trochę inaczej w pewnych argumentach, których to wymaga.
Nadal używa łańcucha kontrolnego po którym następuje lista argumentów.
Więc coś będzie w tych podwójnych cudzysłowach.
Zwykle będą to podwójne cudzysłowy zawiera tylko jedną rzecz i będzie
to specyfikator formatu.
Jak zamierzasz przekonwertować dane.
Więc łańcuch kontrolny wskazuje docelowe typy danych dla wejściowego
strumienia znaków.
To ten specyfikator formatu, procent d, procent c, procent s, procent f
dla przepływu i tak dalej.
Funkcja printf używa zmiennej nazwy, stałe i wyrażenia w swoich
argumentach, ponieważ się tego uczymy.
Masz coś w cudzysłowie.
A potem wewnątrz podwójnego cudzysłowy, używasz specyfikatorów formatu.
A potem, po przecinkach, ty można wydrukować zmienne lub
nawet wydrukować wyrażenia.
Wyrażenia, o których porozmawiamy więcej szczegółów, coś, co
zasadniczo zwraca wartość.
Najpopularniejszy typ wyrażenia jest wyrażeniem arytmetycznym.
Funkcja scanf jest inna ponieważ zamiast faktycznie
wyświetlać zmienne, będzie to użyj zmiennych, na które są wskazywane.
Ale na szczęście wskazówki jest dużym pojęciem w c.
Nie musisz nic wiedzieć o wskaźnikach, aby zrozumieć i
używać funkcji scanf.
Więc nie martw się o to.
W porządku, wszystko, co musisz zrobić, to ty trzeba pamiętać o trzech zasadach
dotyczących funkcji scanf, aby z niej korzystać.
Zwróci liczbę elementy, które pomyślnie odczytuje.
Jeśli więc odczytuje jedną zmienną, dwie zmienne, trzy zmienne, zwróci
to.
Jeśli używasz scanf do odczytania wartości dla jednego
z podstawowych typów zmiennych, które będziemy omawiać, np jako int, float, double, to wszystko,
co musisz zrobić, to nazwa zmiennej, argument musi być
poprzedzony ampersandem.
Nie musisz nawet wiedzieć, dlaczego to jest teraz, ale po
prostu zrób to, dowolny z podstawowych typów danych.
Ampersand to adres.
A ponieważ scanf bierze wskaźnik musisz usunąć odniesienie, musisz
podać adres.
Trzecia rzecz, że ty trzeba pamiętać o scanf.
Jeśli używasz scanf do czytania pliku ciąg, który jest sekwencją znaków
w znak, ty nie musisz używać znaku ampersand.
Więc w zasadzie scanf zajmuje dwa argumenty, które
pokażę na przykładzie.
Pierwszym argumentem będzie jak aby przekonwertować wpisane dane.
A jeśli przechowujesz te dane w int, używasz określnika
formatu procentu procent d.
Jeśli chcesz przechowywać w ciągach o których jeszcze się nie
dowiedzieliśmy, używasz procentów s.
A następnie drugim argumentem jest i może to być wiele
argumentów w zależności od liczby używanych specyfikatorów formatu ponieważ tak jak
printf byłaby rzeczywistą zmienną, nazwą zmiennej.
A jeśli zmienna jest wszystkim, ale ciąg, wystarczy użyć znaku ampersand.
W przeciwnym razie nie użyj znaku ampersand.
Funkcja Scanf również używa białych znaków zdecydować, jak podzielić dane
wejściowe na osobne pola.
A białe spacje zawierają nowe linie, tabulatory i spacje.
I znowu przejdę przez przykład żeby pokazać, co to
znaczy, bo tak jak printf może wyświetlić wiele, wiele zmiennych w zależności
od tego, ile specyfikatorów formatu masz w pliku pojedyncze cudzysłowy, to samo z scanf.
Jeśli scanf ma wiele rzeczy wewnątrz podwójnych cudzysłowów
odczyta wiele danych wejściowych.
A wejścia idą do podzielenia przez nowe linie.
Więc znowu, jeśli chcesz spróbować aby zrozumieć, czym jest
scanf, jest przeciwieństwem printf.
Printf skonwertuje liczby całkowite, liczby zmiennoprzecinkowe, ciągi znaków, wszystkie te
różne dane typy i skonwertuje
go na tekst, abyś mógł zobaczyć wynik.
I tak będzie wyświetlane na ekranie.
Scanf jest odwrotnie.
Będzie to traktowane jako dane wejściowe tekst i przekonwertuj go na dowolny z różnych typów
danych jak ints, float i double.
Spójrzmy więc na przykład.
To jest przykład nasz prosty program.
Wiemy, jaka jest główna rutyna.
Wiemy, czym jest dyrektywa include.
Nie dowiedzieliśmy się o tym jeszcze znaki i liczby całkowite.
Ale w zasadzie na samym szczycie główną funkcją,
tworzymy dwie zmienne, ponieważ musimy przechowywać dane, ao wiele
bardziej szczegółowo omówimy zmienne.
Ale podobnie jak funkcja printf, znowu robisz odwrotnie.
Więc tutaj wyświetlamy dane wyjściowe do ekran mówiący wprowadź wartość.
Scanf wewnątrz podwójnego cudzysłowy mają specyfikatory formatu do odczytania
w danych wejściowych.
Musisz więc określić dane, które będą wczytywane, tutaj
są to procenty s, procenty d.
Oznacza to, że czytamy w string, a następnie czytamy w int.
Zauważysz, że sznurek nie ma ampersandu i scanf po
pierwszym przecinku.
A po drugim przecinku mamy ampersand, ponieważ jest to liczba całkowita.
Czytamy w liczbie.
A potem printf wyświetla dane wyjściowe.
Więc mówi, że wszedłeś w to string w tej liczbie całkowitej, tak
jak wiemy, co robi printf, a następnie funkcja main zwraca zero.
W porządku, więc przejdźmy przez to przykład w sekundę w blokach kodu.
Ale powtórzmy tylko kilka koncepcji.
Gdy program używa scanf to zbiera dane wejściowe z klawiatury,
czeka na wprowadzenie tekstu.
Tak więc program faktycznie się toczy wstrzymać do czasu wprowadzenia danych.
A potem, gdy już wprowadzisz jakiś tekst.
A jeśli wpiszesz jakieś białe spacje, jeśli wprowadzasz wiele rzeczy,
program jest kontynuowany i czyta dane wejściowe po faktycznym
naciśnięciu przycisku Enter.
Musisz nacisnąć przycisk Enter.
Ponownie, scanf oczekuje danych wejściowych w dokładnie taki sam format, jaki podałeś.
Więc jeśli powiesz procent si procent e, to znaczy,
że musisz podać ciąg, po którym następuje spacja, dowolna liczba spacji,
po których następuje liczba całkowita, liczba i słowo.
Łańcuch to słowo, liczba całkowita to liczba.
Przejdźmy więc przez ten przykład wiersz po wierszu w blokach kodu.
OK, więc mamy nasza główna funkcja.
I znowu, ważne jest, żeby nim być możliwość wprowadzania danych do programu.
Więc tak jak printf, idzie być bardzo podobnym i nie musimy
rozumieć całego tego kodu.
Pozbywamy się nawet parametry, które są przekazywane,
prosta funkcja główna.
Nie musimy zrozumieć cały ten kod.
Nie musimy nawet rozumieć jakie zmienne są w tym momencie.
Ale zmienne będą przechowywać dane.
W tym przykładzie tworzymy tablica ciągów znaków 100 i średnik, a następnie jesteśmy również
utworzę liczbę całkowitą, tak
jak w printf.
Mamy liczbę całkowitą, ale używamy sznurka.
Chcę tylko zademonstrować różne wejścia.
Wtedy zwykle kiedykolwiek przed tobą wywołaj funkcję scanf, aby uzyskać dane wejściowe z
klawiatury, jesteś zawsze zamierzam coś powiedzieć użytkownikowi.
Chcesz im powiedzieć, co mają wejść.
Więc printf, pamiętaj, wyświetla dane na ekranie.
Powiemy tylko, że wprowadź wartość.
I faktycznie to zrobią wpisz parę, a następnie zakończ
ją średnikiem.
Musimy powiedzieć użytkownik coś wpisuje.
Oto gdzie my użyj funkcji scanf.
Mówimy scanf, a następnie wewnątrz w nawiasach pierwszy argument w
cudzysłowie idzie być danymi, które będziemy czytać.
W tym przykładzie po prostu powiedzmy, że będziemy czytać tylko
jeden procent wejściowy, który jest liczbą całkowitą.
A potem zamierzamy przechowuj te dane w zmiennej, ponieważ
chcemy się temu przyjrzeć.
I to będę ja.
Teraz musimy określić ampersand wcześniej, bo pamiętajcie, ta mała sztuczka
ze wskazówkami.
Nie musisz wiedzieć dlaczego, to tylko adres.
Więc to scanf w linii 17 będzie faktycznie odczytuje dane z klawiatury, dopóki
użytkownik nie naciśnie przycisku Enter.
A potem te dane będą być przechowywane w zmiennej o nazwie I.
Więc teraz po prostu chcemy wydrukuj to, co wprowadziliśmy.
Więc mamy zamiar powiedzieć, zamierzamy dodać nowy wiersz, aby był czytelny,
więc zamierzamy użyj naszej sekwencji ucieczki, odwrotnego
ukośnika n i powiemy Ci.
Wpisałeś procent d i jedziemy aby wyświetlić wartość zmiennej.
I my też to zrobimy umieść wiersz wysuwu po.
A więc wartość zmiennej który chcemy wyświetlić to i.
Skończymy ze średnikiem.
I to jest nasz program.
Więc znowu drukuje wyjście, prosząc o wartość, odczytując wiersz wejściowy 17 określający, że dane, którymi
jesteśmy odczyt jest liczbą całkowitą, zapisując ją w, i używając
znaku ampersand, a następnie wydrukuj to, co właśnie wprowadziliśmy.
Zbudujmy to i uruchommy.
Zobaczysz, że program się uruchamia a następnie zatrzymuje się, ponieważ chce, abyś
wprowadził wartość.
Mówi, wprowadź wartość.
Więc w tym momencie muszę wprowadzić liczba, którą mogę zamienić na ciąg, ponieważ tak
się dzieje.
Więc powiem tylko 56.
A potem wciskam Enter.
Uruchomił się dwukrotnie, ponieważ mój skaner antywirusowy.
Więc powiem 56, a potem wejdę.
A potem się wypisuje, wpisałem 56.
Mogłem więc wprowadzić informacje, numer i zapisał go w zmiennej.
Teraz tak jak printf, w rzeczywistości możesz poprosić ich o wpisanie
wielu rzeczy i przechowywać w wielu zmiennych.
Więc tutaj po zakończeniu liczba całkowita, powiem kolejny procent,
specyfikator formatu procent s, co oznacza, że chcę, aby wprowadzili ciąg, który jest
po prostu szukaniem słowa.
Więc pamiętaj, jeśli to słowo, ja nie musisz podawać znaku &.
Więc powiem tylko mieszać, chcę przechowywać te dane
w magazynie zmiennych.
I znowu nauczymy się o zmiennych.
A potem jadę po prostu to wydrukować.
Dodałem kolejną zmienną tzw znasz printf i po prostu
wstawię dwukropki przed tobą aby określić format, który
drukujesz, więc są to procenty.
Miejmy nadzieję, że to jasne.
Teraz przeczytam na pół wejścia oddzielone spacjami, przechowuj je w dwóch
zmiennych, I. i zamieszaj, a następnie wyświetl je.
Więc teraz, jeśli budujemy i uciekamy.
Więc tutaj wprowadzę mój numer 22, uderzę w spację, a potem wpiszę swoje imię a potem wrócę
do powrotu.
Kiedy to robię, program zatrzyma się i wyświetli
numer I. wprowadzony, a następnie ciąg.
Więc wyświetla 22 i Jason.
Więc w ten sposób możesz dostać dane wejściowe od użytkownika, proste cztery
lub pięć wierszy kodu.
Jeszcze jedna szybka rzecz, którą chcę pokazać jesteś jak możesz czytać podwójnie.
Więc później na lekcjach jesteś zostanie pokazane, jak czytać zmiennoprzecinkowe
i to zwykle używa format określony procent f.
Ale jeśli biegniesz i czytasz podwójnie, właściwie jest trochę
inaczej, gdy używasz procenta lf, więc coś w rodzaju pamiętaj o tym.
Jeśli utworzę nazwę zmiennej, podwójny x a potem używam scanf do odczytania tego, muszę to
odczytać używając procentu LF.
To jest format specyfikator, którego chcesz użyć.
A potem znowu, tak jak inne, użyłbyś znaku ampersand
jako adresu i powiedziałbyś x.
Oto jak możesz konkretnie przeczytaj podwójnie.
I to jest co innego niż czytanie w przepływie.
Więc miej to w pamięci.
Kiedy pójdziesz to uruchomić, zauważysz działa całkiem prosto.
I możesz czytać dane wejściowe czyta podwójne.
Więc po prostu idź dalej i uruchom to.
I tak będzie o to prosić podwójnie, tak naprawdę niewiele zrobiłem.
A to podwaja się jak 77. 8 i następnie przeczytamy go i zapiszemy,
to całkiem proste.
Więc scanf jest bardzo przydatne, jak wspomniałem.
Inne rzeczy z scanf zauważysz, że przechodząc przez
kurs, jest to scanf czasami nie działa tak dobrze.
Możesz użyć f get s do innych rzeczy.
Głównym problemem związanym z scanf jest kiedy czytasz, czytasz tylko do
momentu, gdy zobaczysz spację.
A więc jeśli spróbujesz użyć scanf, próbujesz wywołać
to wiele razy w funkcji.
W przypadku innych kombinacji może nie działa zbyt
dobrze, ponieważ to, co się dzieje, ma miejsce, gdy trafisz
przycisk powrotu na klawiaturze, to nie będzie przeczytaj ten przycisk powrotu, ponieważ
wczytuje się tylko w słowo.
A więc to nie idzie aby uzyskać wysuw linii.
Więc następnym razem, gdy użyjesz scanf, natychmiast pominie tę linię
i jedzie czytać w nowym wierszu.
Więc to jest problem, który zobaczysz jeśli napiszesz wiele
scanfs w jednym programie jeden po drugim,
zauważysz, że inne scanfs nie są wykonywane, ponieważ czytają w wysuwanym wierszu.
Bardzo łatwy sposób na obejście tego jest zaraz po wykonaniu scanf po prostu
wywołujesz git char, a potem dzwonisz inny skaner, ale o tym
bardziej warto porozmawiać później.
Miałem tylko pokazać, kiedy czytasz podwójnie za pomocą scanf, upewnij
się, że używasz procent LF.
I znowu jest to przydatne, ponieważ niektóre z naszych wyzwań pozwolą Ci uzyskać
informacje od użytkownika aby robić użyteczne rzeczy i uczyć
się różnych koncepcji, jesteśmy w stanie uzyskać dane wejściowe od użytkownika.
Mam więc nadzieję, że to pomogło.
I znowu, nie martw się o
niektóre tych pojęć, że nie w pełni rozumiesz rzeczy Podobnie jak zmienne
i łańcuchy, omówimy to wszystko bardzo szczegółowo dziękuję.