123 lines
3.3 KiB
C++
123 lines
3.3 KiB
C++
/** @file
|
|
|
|
$Id$
|
|
|
|
$Date$
|
|
$Author$
|
|
|
|
@copy © Marc Wäckerlin
|
|
@license LGPL, see file <a href="license.html">COPYING</a>
|
|
|
|
$Log$
|
|
Revision 1.4 2004/12/20 07:40:36 marc
|
|
documentation improved, new grouping
|
|
|
|
Revision 1.3 2004/12/17 16:27:28 marc
|
|
error in documentation: group forgotten
|
|
|
|
Revision 1.2 2004/10/13 11:18:33 marc
|
|
getline reads a whole line from a stream
|
|
|
|
Revision 1.1 2004/10/11 18:30:16 marc
|
|
*** empty log message ***
|
|
|
|
|
|
*/
|
|
|
|
#include <string>
|
|
#include <iostream>
|
|
#include <algorithm>
|
|
|
|
namespace mrw {
|
|
|
|
/** @addtogroup StdExt
|
|
*/
|
|
//@{
|
|
|
|
/** @defgroup stdextReadline Read Line
|
|
|
|
The global functions mrw::getline read exactly one line from a
|
|
stream, without the need of a buffer. It is therefore guaranteed
|
|
that a whole line is read, regardless of the length of the
|
|
line. The result is returned as std::string.
|
|
|
|
@code
|
|
// first syntax returns a string:
|
|
std::string line(mrw::readline(std::cin));
|
|
// second syntax returns the stream:
|
|
while (mrw::readline(std::cin, line))
|
|
std::cout<<"Read: "<<line<<std::endl;
|
|
@endcode
|
|
*/
|
|
//@{
|
|
|
|
/** @brief Deprecated! Do not use any more!
|
|
|
|
@deprecated Use @c std::min from @c
|
|
#include <algorithm> instead!
|
|
|
|
Get the lower of two values.
|
|
If both values are equal, @c a is returned.
|
|
|
|
@param a first value to compare
|
|
@param b second value to compare
|
|
@return the lower of both values
|
|
@pre #include <mrw/stdext.hpp>
|
|
@pre @c T must support <code>bool operator>(conbst T&, constT&)</code>
|
|
*/
|
|
template<typename T> const T& min(const T& a, const T& b) {
|
|
/// calls @c std::min(a, b);
|
|
/// @deprecated will be removed in next major release
|
|
return std::min(a, b);
|
|
}
|
|
|
|
/** @brief Deprecated! Do not use any more!
|
|
|
|
@deprecated Use @c std::max from @c
|
|
#include <algorithm> instead!
|
|
|
|
Get the higher of two values.
|
|
If both values are equal, @c a is returned.
|
|
|
|
@param a first value to compare
|
|
@param b second value to compare
|
|
@return the higher of both values
|
|
@pre #include <mrw/stdext.hpp>
|
|
@pre @c T must support <code>bool operator<(conbst T&, constT&)</code>
|
|
*/
|
|
template<typename T> const T& max(const T& a, const T& b) {
|
|
/// calls @c std::max(a, b);
|
|
/// @deprecated will be removed in next major release
|
|
return std::max(a, b);
|
|
}
|
|
|
|
/** @brief read one line from a stream
|
|
|
|
Reads one line from a stream, up to delimiter @c d.
|
|
The delimiter is not appended to the string.
|
|
|
|
@param is the stream to read from
|
|
@param d the end of line delimiter
|
|
@return the line read from the stream
|
|
@pre #include <mrw/stdext.hpp>
|
|
*/
|
|
std::string getline(std::istream& is, char d = '\n');
|
|
|
|
/** @brief read one line from a stream
|
|
|
|
Reads one line from a stream, up to delimiter @c d.
|
|
The delimiter is not appended to the string.
|
|
|
|
@param is the stream to read from
|
|
@param s the string to place the line in
|
|
@param d the end of line delimiter
|
|
@return @c s: the line read from the stream
|
|
@return the stream after extraction of line
|
|
@pre #include <mrw/stdext.hpp>
|
|
*/
|
|
std::istream& getline(std::istream& is, std::string& s, char d = '\n');
|
|
|
|
//@}
|
|
//@}
|
|
}
|