logo

Stdin en Stdout in C

Programmeren vereist invoer En uitgang activiteiten, en de C-taal stdin En stoer stromen beheren deze processen effectief. Deze uitgebreide referentie zal het doel, de syntaxis en het gebruik van stdin en stdout grondig uitleggen. Standaard stromen in C genaamd stdin En stoer maken invoer- en uitvoerbewerkingen eenvoudiger. Ze maken de communicatie tussen een programma en de gebruiker eenvoudiger als onderdeel van de C-standaardbibliotheek (stdio.h) . Laten we deze stromen in meer detail bekijken:

Wat is Stdin?

Stdin staat voor Standaard invoer . Het wordt vertegenwoordigd door de stdin-stroom , die normaal gesproken op het toetsenbord is aangesloten. Hiermee kunnen programma's door de gebruiker ingevoerde gegevens lezen terwijl ze actief zijn. Lijnbuffering is de standaardinstelling voor stdin , dat invoer verzamelt totdat de gebruiker op de knop drukt Enter toets .

Wat is Stdout?

Stout staat voor Standaarduitvoer . Het wordt vertegenwoordigd door de stoere stroom , die vaak op de console of terminal wordt aangesloten. Het maakt het voor programma's mogelijk om gebruikersinformatie of resultaten te tonen. Stdout wordt standaard ook lijngebufferd.

Het begrijpen van de syntaxis vereist gebruik stdin En stoer efficiënt is essentieel:

Invoer van Stdin lezen:

De scanf-functie is gewend aan lees invoer van de gebruiker via stdin . Het volgende is de syntaxis:

discrete wiskundige ontkenning
 scanf('format_specifier', &variable); 

In dit geval wordt het beoogde gegevenstype aangegeven met formaat_specificatie , en het geheugenadres waar de invoergegevens worden opgeslagen, wordt aangegeven met &variabele.

Uitvoer naar Stdout schrijven:

De afdrukkenf functie wordt gebruikt weergave-uitvoer naar de gebruiker door stoer . Het volgende is de syntaxis:

 printf('format_specifier', variable); 

Het uitvoerformaat wordt ingesteld door de formaat_specificatie en de weer te geven waarde wordt opgeslagen in de variabele.

Om het verder te begrijpen stdin En stoer Laten we eens kijken naar enkele praktijkvoorbeelden:

Java-verzamelingsframework

Voorbeeld 1:

Invoer van Stdin lezen: Stel dat we de gebruiker vragen zijn naam, leeftijd en favoriete nummer in te voeren. Daarna zal de gebruiker deze informatie opnieuw zien vanwege stoer .

 #include int main() { char name[50]; int age; int favoriteNumber; printf('Enter your name: '); scanf('%s', name); printf('Enter your age: '); scanf('%d', &age); printf('Enter your favorite number: '); scanf('%d', &favoriteNumber); printf('Name: %s
', name); printf('Age: %d
', age); printf('Favorite Number: %d
', favoriteNumber); return 0; } 

Uitgang:

Java-tupel
 Enter your name: John Doe Enter your age: 25 Enter your favorite number: 42 Name: John Doe Age: 25 Favorite Number: 42 

Voorbeeld 2:

Uitvoer naar Stdout schrijven: Laten we de som van twee door de gebruiker opgegeven waarden berekenen en het resultaat op het scherm weergeven met behulp van stoer .

 #include int main() { int num1, num2, sum; printf('Enter the first number: '); scanf('%d', &num1); printf('Enter the second number: '); scanf('%d', &num2); sum = num1 + num2; printf('The sum is: %d
', sum); return 0; } 

Uitgang:

 Enter the first number: 10 Enter the second number: 5 The sum is: 15 

Voorbeeld 3:

Hier vindt u een uitgebreide illustratie van het gebruik stdin En stoer in een programma dat het gemiddelde berekent van een reeks door de gebruiker opgegeven getallen:

stapel Java
 #include #define MAX_NUMBERS 10 int main() { int numbers[MAX_NUMBERS]; int count, i; float sum = 0, average; printf('Enter the count of numbers (up to %d): ', MAX_NUMBERS); scanf('%d', &count); if (count MAX_NUMBERS) { printf('Invalid count of numbers. Exiting...
'); return 0; } printf('Enter %d numbers:
&apos;, count); for (i = 0; i <count; i++) { printf('number %d: ', i + 1); scanf('%d', &numbers[i]); sum } average="sum" count; printf('
entered numbers: '); for (i="0;" < printf('%d numbers[i]); printf('
sum: %.2f
', sum); printf('average: average); return 0; pre> <p> <strong>Output:</strong> </p> <pre> Enter the count of numbers (up to 10): 5 Enter 5 numbers: Number 1: 10 Number 2: 15 Number 3: 20 Number 4: 25 Number 5: 30 Entered numbers: 10 15 20 25 30 Sum: 100.00 Average: 20.00 </pre> <p> <strong>Explanation:</strong> </p> <p>The following code demonstrates a program that determines the average of a set of numbers that the user provides. The user is first asked to specify the number of numbers they intend to input. After that, the program prompts the user to enter the required number of numbers if the count is accurate. The entered numbers are concurrently added together and stored in an array. After that, the average is determined by dividing the sum by the count in the program. Finally, the user is shown the entered numbers, sum, and average.</p> <h2>Conclusion:</h2> <p>In conclusion, any programmer intending to create effective and interactive apps must know the use of <strong> <em>stdin</em> </strong> and <strong> <em>stdout</em> </strong> in C. Throughout this article, we have learned a lot about these standard streams and how they function in input and output operations.</p> <p>We can quickly collect user input during runtime by using <strong> <em>stdin</em> </strong> . The <strong> <em>scanf function</em> </strong> allows us to use <strong> <em>format specifiers</em> </strong> to specify the expected data type and save the input in variables. Due to the ability to ask users for different inputs and process them appropriately, makes it possible for our programs to be interactive.</p> <p>It&apos;s crucial to remember that while working with <strong> <em>user input, input validation</em> </strong> and <strong> <em>error handling</em> </strong> must be carefully considered. Users may submit unexpected data, such as a character in place of a number or data that is longer than expected. We can include error-checking features and validate user input before moving on to other procedures to make sure our programs are resilient.</p> <p>On the other hand, we can show the <strong> <em>user information, outcomes</em> </strong> , and <strong> <em>messages</em> </strong> using <strong> <em>stdout</em> </strong> . A flexible method for formatting and presenting the result in a style that is easy to understand is provided by the <strong> <em>printf function</em> </strong> . Using <strong> <em>format specifiers</em> </strong> , we can regulate the presentation of different data kinds, including <strong> <em>texts, integers,</em> </strong> and <strong> <em>floating-point numbers</em> </strong> . It enables us to tailor the output and give the user useful information.</p> <p>In some circumstances, we could need <strong> <em>input</em> </strong> or <strong> <em>output</em> </strong> immediately without waiting for the newline character. The <strong> <em>getchar</em> </strong> and <strong> <em>putchar</em> </strong> functions can be used to read and write individual characters in these circumstances. We can process characters one at a time with these functions because they give us more precise control over input and output.</p> <p>Using <strong> <em>stdin</em> </strong> and <strong> <em>stdout</em> </strong> goes beyond interactive command-line interfaces, even though console-based applications are frequently associated with them. The conventional input and output can be redirected to read from or write to files, allowing for batch processing and task automation. We can efficiently handle enormous volumes of data and operate on external files by using file <strong> <em>I/O routines</em> </strong> like <strong> <em>fopen, fread, fwrite, and fclose</em> </strong> .</p> <p>Additionally, to produce even more potent outcomes, <strong> <em>stdin</em> </strong> and <strong> <em>stdout</em> </strong> can be used with other C programming features and tools. For instance, we may use the <strong> <em>string.h library&apos;s</em> </strong> string manipulation functions in conjunction with stdin and stdout to process and modify text input. They can also be used in conjunction with <strong> <em>control structures, loops,</em> </strong> and <strong> <em>functions</em> </strong> to build sophisticated algorithms and user-input-based decision-making systems.</p> <hr></count;>

Uitleg:

De volgende code demonstreert een programma dat het gemiddelde bepaalt van een reeks getallen die de gebruiker opgeeft. De gebruiker wordt eerst gevraagd het aantal cijfers op te geven dat hij wil invoeren. Daarna vraagt ​​het programma de gebruiker om het vereiste aantal cijfers in te voeren als de telling accuraat is. De ingevoerde getallen worden gelijktijdig bij elkaar opgeteld en opgeslagen in een array. Daarna wordt het gemiddelde bepaald door de som te delen door het aantal in het programma. Ten slotte krijgt de gebruiker de ingevoerde getallen, de som en het gemiddelde te zien.

Conclusie:

Concluderend: elke programmeur die effectieve en interactieve apps wil maken, moet het gebruik ervan kennen stdin En stoer in C. In dit artikel hebben we veel geleerd over deze standaardstreams en hoe ze functioneren bij invoer- en uitvoerbewerkingen.

We kunnen tijdens runtime snel gebruikersinvoer verzamelen door gebruik te maken van stdin . De scanf-functie staat ons toe te gebruiken formaatspecificaties om het verwachte gegevenstype te specificeren en de invoer in variabelen op te slaan. Dankzij de mogelijkheid om gebruikers om verschillende invoer te vragen en deze op de juiste manier te verwerken, is het mogelijk dat onze programma's interactief zijn.

Het is van cruciaal belang om dat te onthouden tijdens het werken met gebruikersinvoer, invoervalidatie En foutafhandeling moeten zorgvuldig worden overwogen. Gebruikers kunnen onverwachte gegevens indienen, zoals een teken in plaats van een getal of gegevens die langer zijn dan verwacht. We kunnen functies voor foutcontrole toevoegen en gebruikersinvoer valideren voordat we overgaan tot andere procedures om ervoor te zorgen dat onze programma's veerkrachtig zijn.

Aan de andere kant kunnen we laten zien gebruikersinformatie, resultaten , En berichten gebruik makend van stoer . Een flexibele methode voor het opmaken en presenteren van het resultaat in een stijl die gemakkelijk te begrijpen is, wordt geboden door de printf-functie . Gebruik makend van formaatspecificaties , kunnen we de presentatie van verschillende soorten gegevens regelen, waaronder teksten, gehele getallen, En getallen met drijvende komma . Het stelt ons in staat de output op maat te maken en de gebruiker nuttige informatie te geven.

In sommige omstandigheden kunnen we dat nodig hebben invoer of uitgang onmiddellijk zonder te wachten op het nieuweregelteken. De haal En putchar In deze omstandigheden kunnen functies worden gebruikt om individuele tekens te lezen en te schrijven. Met deze functies kunnen we karakters één voor één verwerken, omdat ze ons een nauwkeurigere controle geven over de invoer en uitvoer.

Gebruik makend van stdin En stoer gaat verder dan interactieve opdrachtregelinterfaces, ook al worden er vaak console-gebaseerde applicaties aan gekoppeld. De conventionele invoer en uitvoer kunnen worden omgeleid om te lezen van of te schrijven naar bestanden, waardoor batchverwerking en taakautomatisering mogelijk zijn. We kunnen enorme hoeveelheden gegevens efficiënt verwerken en met externe bestanden werken door gebruik te maken van bestanden I/O-routines leuk vinden fopen, fread, fwrite en fclose .

java do while voorbeeld

Om nog krachtigere resultaten te bereiken, stdin En stoer kan worden gebruikt met andere C-programmeerfuncties en -tools. We kunnen bijvoorbeeld de string.h-bibliotheek stringmanipulatiefuncties in combinatie met stdin en stdout om tekstinvoer te verwerken en te wijzigen. Ze kunnen ook worden gebruikt in combinatie met controlestructuren, lussen, En functies om geavanceerde algoritmen en op gebruikersinvoer gebaseerde besluitvormingssystemen te bouwen.