In competitive programming, correctly handling the standard input and output streams is crucial for writing efficient and reliable code. The standard input stream, often referred to as stdin
, is responsible for reading input data, while the standard output stream, known as stdout
, is used to display the program's output.
To handle these streams in C++, the <iostream>
header is included, which provides objects like std::cin
and std::cout
for reading and writing, respectively.
To read input from the user or from a file, you can use std::cin
. It's generally recommended to specify the type of data you want to read, such as integers, doubles, characters, strings, etc., for efficiency and to avoid potential errors.
Here's an example of reading an integer input:
int num;
std::cin >> num;
Similarly, you can read other types of data like this:
double dec;
std::cin >> dec;
char letter;
std::cin >> letter;
std::string name;
std::cin >> name;
If you need to read multiple inputs of the same type on a single line, you can use a loop to iterate over each input. For instance, if the inputs are space-separated integers:
int num;
while (std::cin >> num) {
// Process the input
}
To display output using the standard output stream, you can use std::cout
. It works similarly to std::cin
for reading.
Here's an example of writing an integer output:
int num = 50;
std::cout << num << std::endl;
You can write other types of data like this:
double dec = 3.14;
std::cout << dec << std::endl;
char letter = 'A';
std::cout << letter << std::endl;
std::string name = "John Doe";
std::cout << name << std::endl;
Additionally, you can use the std::endl
manipulator to insert a new line after the output. Alternatively, you can use the escape character '\n'
for the same purpose.
Competitive programming often involves reading input from and writing output to files, which can provide faster input/output operations. To handle file I/O in C++, you need to open the file using std::freopen
and then use std::cin
and std::cout
as usual.
Here's an example of reading from a file named "input.txt" and writing to a file named "output.txt":
std::freopen("input.txt", "r", stdin); // Opens input.txt for reading
std::freopen("output.txt", "w", stdout); // Opens output.txt for writing
// Use std::cin to read input and std::cout to write output
std::fclose(stdin); // Closes the input.txt file
std::fclose(stdout); // Closes the output.txt file
By using file I/O, you can test your code with different test cases saved in separate files, which is essential for competitive programming.
Understanding how to handle standard input and output streams in C++ is crucial for competitive programming. By effectively utilizing std::cin
and std::cout
, you can efficiently read input, display output, and handle file I/O. Make sure to practice these techniques to become proficient in handling standard streams.
noob to master © copyleft