Hvordan lese linjer fra STDIN i C -programmering

Hvordan lese linjer fra STDIN i C -programmering
STDIN er den korte formen for "standardinngangen", i C -programmering av begrepet "stdin" brukes til inngangene som er hentet fra tastaturet enten av brukeren eller fra en fil. "STDIN" er også kjent som pekeren fordi utviklerne får tilgang til dataene fra brukerne eller filene og kan utføre en handling mot dem.

I denne oppskrivningen vil vi bruke de innebygde funksjonene til C-programmering som kan brukes til å lese innspillene fra STDIN.

Hvordan lese en linje fra STDIN i C -programmering

Det er forskjellige innebygde funksjoner som brukes i C-programmering for å lese inngangene fra STDIN. Funksjonene som brukes til å lese linjene er:

  • getline ()
  • GetChar ()
  • putchar ()
  • Scanf ()

Vi vil forklare alle disse funksjonene i detalj.

getline (): Denne funksjonen brukes til å lese linjene fra stdin. For å forstå denne funksjonen, la oss vurdere eksemplet, vil vi lage en tekstfil med navnet MyFile2.C og skriv følgende skript:

#inkludere
#inkludere
Int Main (Void)

printf (“Vennligst skriv inn en linje: \ n”);
char *line = nill;
størrelse_t len ​​= 0;
SSIZE_T LINESTIZE = 0;
LINESIZE = getline (& line, & len, stdin);
printf (“Du skrev inn %s, som har %zu chars.\ n ”, linje, linjestørrelse -1);
gratis (linje);
retur 0;

Sett sammen skriptet til File2.c Bruke GCC -kompilatoren:

$ GCC MyFile2.C -o MyFile2

Kjør koden ved hjelp av kommandoen:

$ ./myfile2

I outputten kan vi se at en linje er hentet fra STDIN og deretter vises med tellingen av karakterene. Getline () -funksjonen leser en full setning fra STDIN og tildeler noe minne på haugen og lagrer den der. I getline () passerer vi adressen til minnet der linjen skal lagres, adressen til linjens lengde og stdin. Vis bare linjen og dens lengde ved hjelp av printf () -funksjonen. Til slutt brukte vi dessuten gratis () slik at plassen som er okkupert i minnet kan ryddes for å bruke den på nytt neste gang.

GetChar (): GetChar () Funksjon brukes til å lese den første karakteren til stdin og putchar () brukes til å vise enkelttegnet på skjermen. Ulempen med GetChar () og Putchar () er at de kan lese og bare vise ett tegn om gangen, men vi kan bruke en løkke til å vise alle karakterene til STDIN. For å forstå dette, skriv følgende kode:

#inkludere
#inkludere
int main ()
char c;
int i, l;
fprintf (stdout, "Angi strenglengden:");
fscanf (stdin, "%d", & l);
fprintf (stdout, "Angi en verdi:");
for (i = 0; i<=l; i++)

c = getc (stdin);
PUTC (C, stdout);

fprintf (stdout, "\ n");
retur 0;

Sett sammen koden ved hjelp av GCC -kompilatoren:

$ GCC MyFile4.C -o MyFile4

Utfør myfilen4:

$ ./myfile4

I koden ovenfor legger vi inn en linje “Hei! Det er Linuxhint ”og GetChar () leser den første karakteren på linjen, og Putchar () brukes til å vise linjen. Først har vi spurt brukeren om lengden på strengen, og så viste vi den ved hjelp av en sløyfe.

Scanf (): Den andre mye brukte metoden for å lese linjen fra STDIN bruker "Scanf ()" -funksjonen. SCANF tar inngangen fra stdin, skanner den deretter og lagrer den i en eller annen variabel eller matrise. For eksempel:

#inkludere
int main ()
char a [100];
fprintf ("Enter en streng:");
fscanf (stdin, "%s", a);
fprintf (stdout, "\ nyou skrev inn følgende streng: %s", a);
fprintf (stdout, “\ n”);
retur 0;

Ved hjelp av GCC -kompilatoren, kompilerer du programmet til MyFile5.C for å feilsøke feilene:

$ GCC MyFile5.C -o MyFile5

Utfør MyFile5:

$ ./myfile5

I skriptet ovenfor erklærte vi ganske enkelt matrisen “A” med karakterdatatypen, ved hjelp av Scanf () tok vi innspillet fra STDIN. Vi brukte “%s” -konstanten som brukes til å lese og skrive ut strengene også. Viste deretter strengen lagret i matrise a [] som er "hei".

Konklusjon

STDIN brukes til å ta inngangen fra tastaturet, og det kan lese på forskjellige måter. Det er forskjellige funksjoner som brukes til å lese stdin. I denne oppskrivningen har vi brukt forskjellige funksjoner som ble brukt til å lese en linje. Den innebygde funksjonen i C-programmering er Getline () som brukes til å lese linjene fra STDIN. Men vi kan også bruke andre funksjoner som GetChar () og Scanf () for å lese linjene.