#include "Musimat.h"Go to the source code of this file.
Functions | |
| ostream & | operator<< (ostream &os, Pitch &p) |
| Bool | isnumeric (char c) |
| Bool | inRange (char c, char lb, char ub) |
| istream & | operator>> (istream &is, Pitch &p) |
| Bool inRange | ( | char | c, |
| char | lb, | ||
| char | ub | ||
| ) | [inline] |
Definition at line 35 of file Pitch.cpp.
References Return.
Referenced by operator>>().
{
Return c >= lb && c <= ub;
}
| Bool isnumeric | ( | char | c ) | [inline] |
Definition at line 30 of file Pitch.cpp.
References Return.
Referenced by operator>>().
{
Return c >= '0' && c <= '9';
}
| ostream& operator<< | ( | ostream & | os, |
| Pitch & | p | ||
| ) |
| istream& operator>> | ( | istream & | is, |
| Pitch & | p | ||
| ) |
Definition at line 40 of file Pitch.cpp.
References Else, If, inRange(), Pitch::isAccidental(), isnumeric(), Pitch::isPitchClass(), Return, and While.
{
//char buf[16];
//cin >> buf;
//p = Pitch(buf);
//Return is;
char c;
cin >> c;
If ((p.m_pc = p.isPitchClass(c)) == -1) {
cin.unget();
Return is;
}
Integer acc = 0;
While (cin >> c && ((acc = p.isAccidental(c)) != -3)) {
p.m_acc += acc;
}
If (!inRange(c, '0', '9')) {
cin.unget();
Return is;
} Else {
char buf[16];
char* b = buf;
Integer cnt = 0;
cin.unget();
While (!cin.eof() && cin >> c && isnumeric(c) && cnt++ < 16) {
// char y = cin.eof();
*b++ = c;
}
cin.unget();
*b = '\0';
p.m_oct = atoi(buf);
}
Return is;
}
1.7.2