Vad är getchar?
getchar() är en funktion i programmeringsspråket C som läser ett enstaka tecken från standardinmatningen (vanligtvis tangentbordet) och returnerar det. Det är en del av standard C-biblioteket och definieras i rubrikfilen stdio.h.
Hur använder man getchar?
getchar() används genom att anropa den utan några argument, som så:
```c
kol c;
c =getchar();
```
Detta gör att programmet väntar tills användaren trycker på en tangent, och sedan läser det tecknet som trycktes och lagras i variabeln c.
Vilka är begränsningarna för getchar?
getchar() är en blockeringsfunktion, vilket innebär att den inte kommer tillbaka förrän ett tecken har skrivits in. Detta kan vara ett problem om du försöker läsa från en enhet som inte har någon ingång, eller om du försöker läsa från en enhet som är väldigt långsam.
Dessutom läser getchar() bara ett enda tecken åt gången. Om du vill läsa en textrad måste du använda en annan funktion, som fgets() eller gets().
Vilka är fördelarna med getchar?
getchar() är en enkel och lättanvänd funktion. Den är också mycket bärbar, vilket innebär att den kan användas på en mängd olika system.
Dessutom är getchar() mycket effektivt. Den läser bara ett enda tecken åt gången, så den slösar inte bort tid på att läsa onödiga data.
När ska man använda getchar?
getchar() är mest användbar när du behöver läsa ett enda tecken från standardinmatningen. Du kan till exempel använda getchar() för att läsa en användares svar på en fråga, eller för att läsa ett kommando från ett kommandoradsgränssnitt.
Här är några exempel på hur getchar() kan användas:
```c
// Be användaren att ange ett tecken
printf("Skriv in ett tecken:");
// Läs tecknet från standardinmatningen
char c =getchar();
// Skriv ut tecknet som angavs
printf("Du skrev in tecknet '%c'.\n", c);
```
```c
// Läs ett kommando från kommandoraden
char *kommando =malloc(100);
printf("Ange ett kommando:");
fgets(kommando, 100, stdin);
// ... gör något med kommandot ...
```
```c
// Läs en textrad från standardinmatningen
char *line =malloc(100);
printf("Skriv in en textrad:");
fgets(linje, 100, stdin);
// ... gör något med linjen ...
```