I l@ve RuBoard |
![]() ![]() |
5.3 Reading DataSo far you've learned how to compute expressions and output the results. You need to have your programs read numbers as well. The output class object std::cout uses the operator << to write numbers. The input object std::cin uses the operator >> to read them. For example: std::cin >> price >> number_on_hand; This code reads two numbers: price and number_on_hand. The input to this program should be two numbers, separated by whitespace. For example, if you type: 32 5 price gets the value 32 and number_on_hand gets 5. In Example 5-3, we use std::cin to get a number from the user, then we double it. Example 5-3. double/double.cpp#include <iostream> int value; // a value to double int main( ) { std::cout << "Enter a value: "; std::cin >> value; std::cout << "Twice " << value << " is " << value * 2 << '\n'; return (0); } Notice that there is no \n at the end of Enter a value:. This is because we do not want the computer to print a newline after the prompt. For example, a sample run of the program might look like this: Enter a value: 12 Twice 12 is 24 If we replaced Enter a value: with Enter a value:\n the result would be: Enter a value: 12 Twice 12 is 24 Question 5-1: Example 5-4 is designed to compute the area of a triangle, given its width and height. For some strange reason, the compiler refuses to believe that we declared the variable width. The declaration is right there on line two, just after the definition of height. Why isn't the compiler seeing it? Example 5-4. comment/comment.cpp#include <iostream> int height; /* the height of the triangle int width; /* the width of the triangle */ int area; /* area of the triangle (computed) */ int main( ) { std::cout << "Enter width height? "; std::cin >> width >> height; area = (width * height) / 2; std::cout << "The area is " << area << '\n'; return (0); } The general form of a std::cin statement is: std::cin >> variable; This works for all types of simple variables such as int, float, char, and wchar_t. Reading strings is a little more difficult. To read a string, use the statement: std::getline(std::cin, string); For example: std::string name; // The name of a person std::getline(std::cin, name); We discuss the std::getline function in Chapter 16. When reading a string, the std::cin class considers anything up to the end-of-line part of the string. Example 5-5 reads a line from the keyboard and reports the line's length. Example 5-5. len/len.cpp#include <string> #include <iostream> std::string line; // A line of data int main( ) { std::cout << "Enter a line:"; std::getline(std::cin, line); std::cout << "The length of the line is: " << line.length( ) << '\n'; return (0); } When we run this program we get: Enter a line:test The length of the line is: 4 |
I l@ve RuBoard |
![]() ![]() |