Simple Vector Library 1.5 http://www.cs.cmu.edu/~ajw/doc/svl.html
Vec2.cpp@1:e25ff4b06ed2, 2016-01-05 (annotated)
- Committer:
- BartJanssens
- Date:
- Tue Jan 05 13:37:50 2016 +0000
- Revision:
- 1:e25ff4b06ed2
- Parent:
- 0:785cff1e5a7c
fixed va_list bug
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
BartJanssens | 0:785cff1e5a7c | 1 | /* |
BartJanssens | 0:785cff1e5a7c | 2 | File: Vec2.cpp |
BartJanssens | 0:785cff1e5a7c | 3 | |
BartJanssens | 0:785cff1e5a7c | 4 | Function: Implements Vec2.h |
BartJanssens | 0:785cff1e5a7c | 5 | |
BartJanssens | 0:785cff1e5a7c | 6 | Author(s): Andrew Willmott |
BartJanssens | 0:785cff1e5a7c | 7 | |
BartJanssens | 0:785cff1e5a7c | 8 | Copyright: (c) 1995-2001, Andrew Willmott |
BartJanssens | 0:785cff1e5a7c | 9 | |
BartJanssens | 0:785cff1e5a7c | 10 | */ |
BartJanssens | 0:785cff1e5a7c | 11 | |
BartJanssens | 0:785cff1e5a7c | 12 | |
BartJanssens | 0:785cff1e5a7c | 13 | #include "Vec2.h" |
BartJanssens | 0:785cff1e5a7c | 14 | //#include <cctype> |
BartJanssens | 0:785cff1e5a7c | 15 | //#include <iomanip> |
BartJanssens | 0:785cff1e5a7c | 16 | |
BartJanssens | 0:785cff1e5a7c | 17 | |
BartJanssens | 0:785cff1e5a7c | 18 | /* |
BartJanssens | 0:785cff1e5a7c | 19 | ostream &operator << (ostream &s, const Vec2 &v) |
BartJanssens | 0:785cff1e5a7c | 20 | { |
BartJanssens | 0:785cff1e5a7c | 21 | uint16_t w = s.width(); |
BartJanssens | 0:785cff1e5a7c | 22 | |
BartJanssens | 0:785cff1e5a7c | 23 | return(s << '[' << v[0] << ' ' << setw(w) << v[1] << ']'); |
BartJanssens | 0:785cff1e5a7c | 24 | } |
BartJanssens | 0:785cff1e5a7c | 25 | |
BartJanssens | 0:785cff1e5a7c | 26 | istream &operator >> (istream &s, Vec2 &v) |
BartJanssens | 0:785cff1e5a7c | 27 | { |
BartJanssens | 0:785cff1e5a7c | 28 | Vec2 result; |
BartJanssens | 0:785cff1e5a7c | 29 | Char c; |
BartJanssens | 0:785cff1e5a7c | 30 | |
BartJanssens | 0:785cff1e5a7c | 31 | // Expected format: [1 2] |
BartJanssens | 0:785cff1e5a7c | 32 | |
BartJanssens | 0:785cff1e5a7c | 33 | while (s >> c && isspace(c)) |
BartJanssens | 0:785cff1e5a7c | 34 | ; |
BartJanssens | 0:785cff1e5a7c | 35 | |
BartJanssens | 0:785cff1e5a7c | 36 | if (c == '[') |
BartJanssens | 0:785cff1e5a7c | 37 | { |
BartJanssens | 0:785cff1e5a7c | 38 | s >> result[0] >> result[1]; |
BartJanssens | 0:785cff1e5a7c | 39 | |
BartJanssens | 0:785cff1e5a7c | 40 | if (!s) |
BartJanssens | 0:785cff1e5a7c | 41 | { |
BartJanssens | 0:785cff1e5a7c | 42 | cerr << "Error: Expected number while reading vector\n"; |
BartJanssens | 0:785cff1e5a7c | 43 | return(s); |
BartJanssens | 0:785cff1e5a7c | 44 | } |
BartJanssens | 0:785cff1e5a7c | 45 | |
BartJanssens | 0:785cff1e5a7c | 46 | while (s >> c && isspace(c)) |
BartJanssens | 0:785cff1e5a7c | 47 | ; |
BartJanssens | 0:785cff1e5a7c | 48 | |
BartJanssens | 0:785cff1e5a7c | 49 | if (c != ']') |
BartJanssens | 0:785cff1e5a7c | 50 | { |
BartJanssens | 0:785cff1e5a7c | 51 | s.clear(ios::failbit); |
BartJanssens | 0:785cff1e5a7c | 52 | cerr << "Error: Expected ']' while reading vector\n"; |
BartJanssens | 0:785cff1e5a7c | 53 | return(s); |
BartJanssens | 0:785cff1e5a7c | 54 | } |
BartJanssens | 0:785cff1e5a7c | 55 | } |
BartJanssens | 0:785cff1e5a7c | 56 | else |
BartJanssens | 0:785cff1e5a7c | 57 | { |
BartJanssens | 0:785cff1e5a7c | 58 | s.clear(ios::failbit); |
BartJanssens | 0:785cff1e5a7c | 59 | cerr << "Error: Expected '[' while reading vector\n"; |
BartJanssens | 0:785cff1e5a7c | 60 | return(s); |
BartJanssens | 0:785cff1e5a7c | 61 | } |
BartJanssens | 0:785cff1e5a7c | 62 | |
BartJanssens | 0:785cff1e5a7c | 63 | v = result; |
BartJanssens | 0:785cff1e5a7c | 64 | return(s); |
BartJanssens | 0:785cff1e5a7c | 65 | } |
BartJanssens | 0:785cff1e5a7c | 66 | */ |