- 1 1. Sissejuhatus: Mis on sisend C-keeles?
- 2 2. Põhiline sisenditöötlus ja funktsioonide kasutamine
- 3 3. Keerukam sisenditöötlus
- 4 4. Jaapani ja multibaitmärkide sisendi töötlemine
- 5 5. Praktilised näited: Kombineeritud sisendiprogrammide loomine
- 6 6. Levinumad vead ja tõrkeotsing
- 7 7. Kokkuvõte ja järgmised sammud
1. Sissejuhatus: Mis on sisend C-keeles?
C-keel on üks enimkasutatavaid programmeerimiskeeli ning mängib olulist rolli nii süsteemiarenduses kui ka manussüsteemides.
Nende seas on “sisenditöötlus” hädavajalik funktsioon kasutaja andmete hankimiseks ja programmi rakendamiseks.
Selles artiklis selgitame üksikasjalikult C-keele sisenditöötluse aluseid ja rakendusi, pakkudes teadmisi, mis on kasulikud nii algajatele kui ka kesktaseme programmeerijatele.
Sisendi roll C-keeles
C-keeles kasutatakse sisendit peamiselt järgmistel eesmärkidel:
- Kasutajaandmete sisestamine: kasutaja sisestab konsooli kaudu numbreid või tekstijadasid.
- Failide lugemine: andmete hankimine ja töötlemine välistest failidest.
- Andmete valideerimine ja töötlemine: sisendandmete kontrollimine ja vajaduse korral parandamine või muutmine.
Näiteks kuuluvad siia programmid, mis teevad arvutusi kasutaja sisestatud numbrite põhjal, või süsteemid, mis loevad kliendiandmeid failidest.
Sisenditöötluse tähtsus
Sisenditöötlus on otseselt seotud programmi turvalisuse ja töökindlusega. Eriti tuleb arvestada järgmisi punkte:
- Vigade käitlemine: sisestusvigade või ootamatute andmete põhjustatud vigade korrektne käsitlemine, et vältida programmi krahhi.
- Turvalisuse tagamine: ohutute funktsioonide kasutamine, et vältida turvahaavatavusi, nagu näiteks puhvri ületäitumine.
- Mitmesuguste andmevormingute tugi: paindlik disain, mis suudab töödelda erinevaid andmetüüpe (numbrid, tekst, failid jne).
Artikli eesmärk ja sisu
Selles artiklis käsitleme C-keele sisenditöötluse aluseid ja edasijõudnutele mõeldud tehnikaid järgmistes etappides:
- Standardse sisendi ja väljundi tööpõhimõte
- Põhiliste sisendfunktsioonide kasutamine ja turvakaalutlused
- Keerukam sisenditöötlus ja failihaldus
- Vigade käitlemine ja mitmebaidiste märkide tugi
Lisame ka praktilisi koodinäiteid, et näidata konkreetseid kasutusviise.
Eesmärk on, et algajad saaksid põhitõdedest aru ja kesktaseme programmeerijad leiaksid uusi ideid.
Järgmine samm
Järgmises jaotises selgitame üksikasjalikult C-keele standardse sisendi ja väljundi aluseid.
Saame tugeva aluse sisenditöötluse mõistmiseks ja astume esimese sammu turvalise koodi kirjutamise suunas.

2. Põhiline sisenditöötlus ja funktsioonide kasutamine
C-keeles pakub standardteek funktsioone sisenditöötluse teostamiseks. Selles jaotises selgitame standardse sisendi ja väljundi toimimist ning konkreetsete funktsioonide kasutamist.
2.1 Standardse sisendi ja väljundi tööpõhimõte
C-keeles tähendab “standardne sisend” mehhanismi andmete vastuvõtmiseks klaviatuurilt. Samamoodi viitab “standardne väljund” mehhanismile tulemuste kuvamiseks ekraanil.
Standardne sisend (stdin) ja standardne väljund (stdout) – ülevaade
- Standardne sisend (stdin): kasutatakse andmete vastuvõtmiseks, mida kasutaja klaviatuurilt sisestab.
- Standardne väljund (stdout): kasutatakse andmete ja töötlustulemuste kuvamiseks ekraanile.
Need on määratletud standardses teegis <stdio.h>
ning neid saab programmis vabalt kasutada.
Põhiline programminäide
Alljärgnev programm võtab standardse sisendi kaudu vastu ühe täisarvu ja kuvab selle standardse väljundi kaudu.
#include <stdio.h>
int main() {
int number;
printf("Sisestage täisarv: ");
scanf("%d", &number); // Loeb täisarvu standardsisendist
printf("Sisestatud väärtus on %d.\n", number); // Kuvab tulemuse
return 0;
}
Selles programmis salvestatakse kasutaja klaviatuurilt sisestatud arv muutujasse number
ning kuvatakse ekraanil.
2.2 scanf
-funktsiooniga sisenditöötlus
scanf
-funktsiooni põhisüntaks
scanf("vormingumäärang", aadress);
Vormingumäärang määrab sisestatavate andmete tüübi. Peamised määrangud on järgmised:
Määrang | Andmetüüp | Selgitus |
---|---|---|
%d | int | Täisarv |
%f | float | Komaeraldisega arv |
%lf | double | Topeltpresisiooniga ujukomaarv |
%c | char | Üks märk |
%s | char massiiv | Sõne |
Praktiline näide: mitme andme sisestamine
#include <stdio.h>
int main() {
int age;
float height;
printf("Sisestage vanus ja pikkus eraldatuna tühikuga: ");
scanf("%d %f", &age, &height); // Loeb täisarvu ja ujukomaarvu
printf("Vanus: %d, Pikkus: %.2f\n", age, height);
return 0;
}
Selles näites sisestatakse vanus ja pikkus korraga ning need salvestatakse vastavatesse muutujatesse ja kuvatakse ekraanil.
Tähelepanu: puhvri ületäitumine
scanf
-funktsiooni kasutamisel võib ootamatu sisendi suurus põhjustada puhvri ületäitumist. Eriti sõnede sisestamisel on vajalik sisendi pikkusele piirang seada, et vältida mälu rikkumist.
2.3 Sõnesisend ja turvaline töötlemine
gets
-funktsioon on aegunud
Traditsioonilises C-keeles kasutati sõnede sisestamiseks gets
-funktsiooni, kuid see ei paku kaitset puhvri ületäitumise eest ning seetõttu ei ole selle kasutamine turvaline.
Turvaline alternatiiv: fgets
Tänapäeval soovitatakse turvalise sisendi jaoks kasutada fgets
-funktsiooni.
#include <stdio.h>
int main() {
char name[50];
printf("Sisestage nimi: ");
fgets(name, sizeof(name), stdin); // Turvaline sõne sisend
printf("Sisestatud nimi: %s", name);
return 0;
}
Oluline: fgets
võimaldab määrata maksimaalse sisendi pikkuse, vältides seeläbi puhvri ületäitumist.
Reavahetuse eemaldamine sõnest
fgets
jätab sisestatud sõnesse reavahetuse, mistõttu tuleb see vajadusel eemaldada.
name[strcspn(name, "\n")] = '\0'; // Eemaldab reavahetuse
2.4 Sisendi veakontroll
Vale sisendi tuvastamine
Kui kasutaja sisestab oodatud vormingust erinevaid andmeid, saab scanf
funktsioon tuvastada vea.
#include <stdio.h>
int main() {
int number;
printf("Sisestage täisarv: ");
if (scanf("%d", &number) != 1) { // Kontrollib, kas sisend õnnestus
printf("Vigane sisend.\n");
return 1; // Programmi lõpetamine veaga
}
printf("Sisestatud väärtus: %d\n", number);
return 0;
}
Selles näites kuvatakse veateade ja programm lõpetatakse, kui sisestatakse midagi muud kui täisarv.
3. Keerukam sisenditöötlus
Selles jaotises käsitleme C-keele keerukamaid sisenditöötluse meetodeid, sealhulgas failist lugemist, vigade käitlemist ja andmete teisendamist.
3.1 Failist andmete lugemine
Lisaks standardsisendile on C-keeles oluline töödelda ka faile. See võimaldab programmil kasutada väliseid andmeid.
Faili avamine ja sulgemine
Failidega töötamiseks avatakse need fopen
-funktsiooniga ja suletakse fclose
-funktsiooniga.
#include <stdio.h>
int main() {
FILE *file;
file = fopen("data.txt", "r"); // Avab faili lugemiseks
if (file == NULL) {
printf("Faili ei saanud avada.\n");
return 1;
}
printf("Fail avati edukalt.\n");
fclose(file);
return 0;
}
Kui faili ei eksisteeri, kuvatakse veateade ja programm lõpetatakse.
Andmete lugemine failist fscanf
-iga
fscanf
-funktsioon võimaldab lugeda failist vormingu järgi andmeid.
#include <stdio.h>
int main() {
FILE *file;
int id;
char name[50];
file = fopen("data.txt", "r");
if (file == NULL) {
printf("Faili ei saanud avada.\n");
return 1;
}
while (fscanf(file, "%d %s", &id, name) != EOF) {
printf("ID: %d, Nimi: %s\n", id, name);
}
fclose(file);
return 0;
}
Selles näites loetakse failist data.txt
täisarv ja sõne iga rea kohta.
3.2 Sisendi valideerimine ja vigade käitlemine
Sisendandmed ei pruugi alati olla õiged, seetõttu on vigade käitlemine oluline turvalise programmi loomisel.
Vigaste andmete tuvastamine
Alljärgnev näide kontrollib, et sisestatakse ainult täisarv, muidu küsitakse uuesti.
#include <stdio.h>
int main() {
int number;
printf("Sisestage täisarv: ");
while (scanf("%d", &number) != 1) {
printf("Vigane sisend, proovige uuesti: ");
while (getchar() != '\n'); // Puhastab sisendpuhvri
}
printf("Sisestatud täisarv: %d\n", number);
return 0;
}
3.3 Arvude teisendamine ja vorming
Tihti on vaja teisendada tekstist loetud väärtused numbriteks. C-keeles saab selleks kasutada näiteks strtol
ja strtod
funktsioone.
Sõne teisendamine täisarvuks (strtol
)
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[20];
char *endptr;
long value;
printf("Sisestage arv: ");
fgets(input, sizeof(input), stdin);
value = strtol(input, &endptr, 10);
if (*endptr != '\0' && *endptr != '\n') {
printf("Vigane number.\n");
} else {
printf("Sisestatud väärtus: %ld\n", value);
}
return 0;
}
Sõne teisendamine ujukomaarvuks (strtod
)
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[20];
char *endptr;
double value;
printf("Sisestage arv: ");
fgets(input, sizeof(input), stdin);
value = strtod(input, &endptr);
if (*endptr != '\0' && *endptr != '\n') {
printf("Vigane number.\n");
} else {
printf("Sisestatud väärtus: %.2f\n", value);
}
return 0;
}
See meetod võimaldab töödelda ka komakohti sisaldavaid numbreid.
4. Jaapani ja multibaitmärkide sisendi töötlemine
Selles jaotises käsitleme sisendi töötlemist, mis sisaldab jaapani või muid multibaitmärke. Selliste märkide korrektseks käsitlemiseks on vaja mõista märgikoodide süsteeme ja kasutada sobivaid funktsioone.
4.1 Ettevalmistus jaapani keele käsitlemiseks
Märgikoodid ja kodeeringud
Jaapani keele töötlemiseks tuleb määrata õige märgikood ja kodeering. Levinumad on järgmised kolm:
Märgikood | Omadused |
---|---|
UTF-8 | Rahvusvaheline standard, mida toetavad enamik süsteeme ja platvorme. |
Shift_JIS | Varem Jaapanis laialdaselt kasutatud; hea ühilduvus vanemate süsteemidega. |
EUC-JP | Levinud UNIX-põhistes süsteemides. |
Rahvusvahelise toe tagamiseks soovitatakse kasutada UTF-8 kodeeringut.
Locale seadistamine
Jaapani keele korrektseks käsitlemiseks tuleb määrata sobiv locale (piirkonnaseadistus). Näiteks:
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8"); // Määrab jaapani locale
printf("Locale on seadistatud.\n");
return 0;
}
Selle seadistuse abil saab programme lihtsamini kohandada jaapani märgikoodiga töötamiseks.
4.2 Laiendatud märgid ja wchar_t
kasutamine
C-keeles saab multibaitmärke käsitleda laiendatud märgi tüübi abil, mis on wchar_t
. See mahutab rohkem andmeid kui tavaline char
.
Laiendatud märkide sisestamine ja väljastamine
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main() {
wchar_t name[50];
setlocale(LC_ALL, "ja_JP.UTF-8");
wprintf(L"Sisestage nimi: ");
fgetws(name, sizeof(name) / sizeof(wchar_t), stdin);
wprintf(L"Sisestatud nimi: %ls\n", name);
return 0;
}
Olulised punktid
setlocale
: vajalik jaapani või muude multibaitmärkide korrektseks töötlemiseks.wchar_t
: andmetüüp laiendatud märkide jaoks.wprintf
jafgetws
: funktsioonid, mis on mõeldud laiendatud märkide sisendiks ja väljundiks.
4.3 Multibaitmärkide töötlemine
Märkide ja baitide arvu arvutamine
Multibaitmärkide puhul võib üks märk koosneda mitmest baitist. Märkide täpse arvu arvutamiseks saab kasutada spetsiaalseid funktsioone.
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8");
char str[] = "こんにちは";
int length = mbstowcs(NULL, str, 0);
printf("Märkide arv: %d\n", length);
return 0;
}
4.4 Vigade käitlemine multibaitmärkidega
Vigaste märgikoodide tuvastamine
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <wchar.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8");
char input[100];
wchar_t output[100];
printf("Sisestage tekst: ");
fgets(input, sizeof(input), stdin);
if (mbstowcs(output, input, 100) == (size_t)-1) {
printf("Tuvastati vigane märgikood.\n");
return 1;
}
wprintf(L"Tulemus: %ls\n", output);
return 0;
}
Selles näites kontrollitakse, kas sisend sisaldab kehtetuid koode, ja kuvatakse vastav teade.
5. Praktilised näited: Kombineeritud sisendiprogrammide loomine
Selles jaotises kasutame seni õpitud teadmisi, et luua praktilisi sisendiprogramme. Näidetes ühendame täisarvude, ujukomaarvude ja sõnede sisendi ning valideerimise, failitöötluse ja jaapani keele toe.
5.1 Näide 1: Mitme andmetüübi sisestamine ja valideerimine
Järgmine programm kombineerib täisarvude, ujukomaarvude ja sõnede sisendi ning kontrollib sisestatud väärtuste kehtivust.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
int age;
float height;
char name[50];
// Nime sisestamine
printf("Sisestage nimi: ");
fgets(name, sizeof(name), stdin);
name[strcspn(name, "\n")] = '\0'; // Eemaldab reavahetuse
// Vanuse sisestamine ja valideerimine
printf("Sisestage vanus: ");
while (scanf("%d", &age) != 1 || age < 0) {
printf("Vigane sisend, proovige uuesti: ");
while (getchar() != '\n'); // Puhastab puhvri
}
// Pikkuse sisestamine ja valideerimine
printf("Sisestage pikkus (cm): ");
while (scanf("%f", &height) != 1 || height < 0) {
printf("Vigane sisend, proovige uuesti: ");
while (getchar() != '\n');
}
// Tulemustele väljund
printf("Nimi: %s\n", name);
printf("Vanus: %d aastat\n", age);
printf("Pikkus: %.2f cm\n", height);
return 0;
}
Olulised punktid
- Nime sisendi ja reavahetuse eemaldamine:
fgets
jastrcspn
kasutamine. - Täisarvude ja ujukomaarvude valideerimine: vigase sisendi korral uuesti küsimine.
- Puhvri puhastamine: vältimaks ebaõiget käitumist järgmisel sisendil.
5.2 Näide 2: Andmete lugemine failist
Järgmine programm loeb andmed failist ja kuvab need.
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file;
int id;
char name[50];
float score;
file = fopen("data.txt", "r");
if (file == NULL) {
printf("Faili ei saanud avada.\n");
return 1;
}
printf("Andmete loend:\n");
while (fscanf(file, "%d %s %f", &id, name, &score) == 3) {
printf("ID: %d, Nimi: %s, Tulemus: %.2f\n", id, name, score);
}
fclose(file);
return 0;
}
Olulised punktid
- Faili avamine ja sulgemine:
fopen
jafclose
kasutamine. fscanf
: andmete lugemine vastavalt määratud vormingule.- EOF kontroll: tsükkel jätkub kuni faili lõpuni.
5.3 Näide 3: Jaapani keele tugi
See näide demonstreerib jaapani multibaitmärkide sisestamist ja salvestamist faili.
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main() {
FILE *file;
wchar_t name[50];
setlocale(LC_ALL, "ja_JP.UTF-8");
wprintf(L"Sisestage nimi: ");
fgetws(name, sizeof(name) / sizeof(wchar_t), stdin);
name[wcslen(name) - 1] = L'\0'; // Eemaldab reavahetuse
file = fopen("output.txt", "w");
if (file == NULL) {
wprintf(L"Faili ei saanud avada.\n");
return 1;
}
fwprintf(file, L"Nimi: %ls\n", name);
fclose(file);
wprintf(L"Andmed on salvestatud.\n");
return 0;
}
Olulised punktid
- Locale seadistamine: vajalik jaapani tähemärkide õigeks töötlemiseks.
- Laiendatud märgi sisend ja väljund:
fgetws
jafwprintf
kasutamine. - Reavahetuse eemaldamine: vajalik ka laiendatud märkide puhul.
6. Levinumad vead ja tõrkeotsing
Selles jaotises käsitleme C-keele sisenditöötluses sageli esinevaid vigu ja probleeme ning selgitame, kuidas neid lahendada.
6.1 Puhvri ületäitumine
Probleemi kirjeldus
Kui scanf
-funktsiooni kasutamisel sisestatakse rohkem andmeid, kui puhver mahutab, tekib puhvri ületäitumine, mis võib põhjustada programmi ootamatut käitumist.
Näide probleemist
#include <stdio.h>
int main() {
char buffer[10];
printf("Sisestage nimi: ");
scanf("%s", buffer); // Võib põhjustada puhvri ületäitumise
printf("Nimi: %s\n", buffer);
return 0;
}
Kui sisestatakse üle 10 tähemärgi, võib puhver üle voolata ja mälu rikkuda.
Lahendus: fgets
kasutamine
#include <stdio.h>
int main() {
char buffer[10];
printf("Sisestage nimi: ");
fgets(buffer, sizeof(buffer), stdin); // Piirab sisendi pikkust
printf("Nimi: %s\n", buffer);
return 0;
}
Selles näites määratakse maksimaalne sisendpikkus, et vältida ületäitumist.
6.2 Sisendpuhvrisse jäävad andmed
Probleemi kirjeldus
scanf
-funktsioon võib jätta sisendpuhvrisse tühikud või reavahetuse, mis mõjutavad järgmisi sisendeid.
Näide probleemist
#include <stdio.h>
int main() {
int age;
char name[50];
printf("Sisestage vanus: ");
scanf("%d", &age); // Reavahetus jääb puhvris
printf("Sisestage nimi: ");
fgets(name, sizeof(name), stdin); // Loeb puhvris oleva reavahetuse
printf("Nimi: %s\n", name);
}
Lahendus: puhvripuhastus
#include <stdio.h>
int main() {
int age;
char name[50];
printf("Sisestage vanus: ");
scanf("%d", &age);
while (getchar() != '\n'); // Puhastab sisendpuhvri
printf("Sisestage nimi: ");
fgets(name, sizeof(name), stdin);
printf("Nimi: %s\n", name);
return 0;
}
6.3 Numbriks teisendamise vead
Probleemi kirjeldus
Kui sõnes on mittearvulisi sümboleid, võib numbriks teisendamine anda vale tulemuse.
Näide probleemist
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[10];
int number;
printf("Sisestage arv: ");
fgets(input, sizeof(input), stdin);
number = atoi(input); // Vigase sisendi korral tagastab 0
printf("Sisestatud arv: %d\n", number);
}
Lahendus: strtol
-i kasutamine
#include <stdio.h>
#include <stdlib.h>
int main() {
char input[10];
char *endptr;
long number;
printf("Sisestage arv: ");
fgets(input, sizeof(input), stdin);
number = strtol(input, &endptr, 10);
if (*endptr != '\0' && *endptr != '\n') {
printf("Vigane number.\n");
} else {
printf("Sisestatud väärtus: %ld\n", number);
}
return 0;
}
6.4 Jaapani keele märgikodeeringu probleemid
Probleemi kirjeldus
Kui märgikodeering pole õigesti seadistatud, võivad jaapani tähemärgid kuvada vigaselt.
Näide probleemist
#include <stdio.h>
int main() {
char name[50];
printf("Sisestage nimi: ");
fgets(name, sizeof(name), stdin);
printf("Nimi: %s\n", name);
}
Lahendus: locale ja laiendatud märgid
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main() {
wchar_t name[50];
setlocale(LC_ALL, "ja_JP.UTF-8");
wprintf(L"Sisestage nimi: ");
fgetws(name, sizeof(name) / sizeof(wchar_t), stdin);
wprintf(L"Nimi: %ls\n", name);
return 0;
}
Locale seadistamine ja wchar_t
kasutamine aitab vältida märgikodeeringu vigu.
7. Kokkuvõte ja järgmised sammud
Käesolevas artiklis käsitlesime C-keele sisenditöötlust alates põhitõdedest kuni keerukamate tehnikate, vigade käsitlemise, jaapani keele toe ja tõrkeotsinguni. Selles jaotises teeme lühikokkuvõtte ning anname soovitusi edasiseks õppimiseks.
7.1 Artikli põhipunktid
1. Põhiline sisenditöötlus
- Õppisime tundma standardsisendi ja -väljundi tööpõhimõtteid ning kasutama
scanf
jafgets
funktsioone andmete hankimiseks. - Omandasime teadmised vigade käsitlemisest ja puhvri ületäitumise vältimisest, et kirjutada turvalist koodi.
2. Keerukam sisenditöötlus
- Tutvusime andmete lugemisega failidest ja sisendi valideerimise tehnikatega.
- Kombineerisime arvude teisendamise ja vigade käsitlemise, et luua paindlikke ja töökindlaid programme.
3. Jaapani ja multibaitmärkide tugi
- Locale seadistamine ja laiendatud märgitüübi
wchar_t
kasutamine võimaldavad töödelda jaapani ja muid mitmebaidiseid tähemärke. - Õppisime tuvastama vigaseid märgikoode ja neid korrektselt käsitlema.
4. Praktilised näited
- Lõime kombineeritud sisendiprogramme, mis töötlevad täisarve, ujukomaarve, sõnesid, faile ja jaapani teksti.
5. Levinumad vead ja tõrkeotsing
- Õppisime lahendama puhvri ületäitumise, sisendpuhvri jääkandmete, numbriks teisendamise vigade ja märgikodeeringu probleemide olukordi.
7.2 Soovitatud järgmised sammud
Pärast C-keele sisenditöötluse põhialuste mõistmist võiks järgmisena süveneda järgmistes teemadesse:
- Massiivid ja osutid
- Sisenditöötluses kasutatakse sageli massiive ja osuteid. Õpi mälu haldamist ja dünaamiliste massiivide kasutamist.
- Struktuurid ja failitöötluse laiendused
- Struktuuride abil saab hallata keerukaid andmekogumeid ja täiustada failide lugemist/kirjutamist.
- Funktsioonid ja koodi modulaarne jaotus
- Koodi jagamine funktsioonideks ja mooduliteks parandab loetavust ja korduskasutust.
- Vigade käsitlemine ja logimine
- Lisa täiustatud vigade käsitlemise ja logimise mehhanismid, et tagada programmi töökindlus.
- Mitmelõimelisus
- Mitmelõimelisuse abil saab sisenditöötlust teha paralleelselt, mis suurendab jõudlust.
- Võrguprogrammeerimine ja teiste keelte integreerimine
- Tutvu C-keele võrguprogrammeerimise võimalustega ja õpi seda kombineerima näiteks Pythoniga.
7.3 Nõuanded lugejale
1. Harjuta koodi kirjutamist
- Kirjuta ja käivita artiklis toodud koodinäited, et saada praktiline kogemus.
2. Kasuta viiteallikaid
- Kasuta standardteekide dokumentatsiooni ja otsi vajadusel lisainfot.
3. Liigu samm-sammult
- Alusta lihtsatest programmidest ja liigu järk-järgult keerukamate juurde.
4. Ära karda vigasid
- Veateated on vihjed lahenduse leidmiseks — kasuta neid õppimisvõimalusena.
7.4 Lõppsõna
Käesolevas artiklis õppisime C-keele sisenditöötluse aluseid ja rakendusi, samuti turvalise ja praktilise koodi kirjutamise võtteid.
C-keel on lihtne, kuid võimas programmeerimiskeel, mis võimaldab luua mitmesuguseid rakendusi. Jätka praktiseerimist ja arenda oma oskusi, et täielikult ära kasutada C-keele potentsiaali.