// brackets.cpp CIS 205 C/C++ 04/17/2002
// This program returns the number and nesting level of { and } brackets in a diskfile.
// The name of the diskfile to be searched is given by a runtime parameter
/*
Sample interaction for brackets.txt containing {{}Hello}
C:\temp>brackets brackets.txt
Bracket Nesting Level: 0
Bracket Nesting Level: 1
Bracket Nesting Level: 2
Bracket Nesting Level: 1
Bracket Nesting Level: 0
Open Bracket Count: 2
Close Bracket Count: 2
*/
#include <iostream.h>
#include <fstream.h>
int main(int argc, char *argv[]) {
int level = 0, openBracket = 0, closeBracket = 0;
char ch;
ifstream ptr;
if(argc < 2) {
cout << "usage: " << argv[0] << " filename.txt" << endl;
}
else {
ptr.open(argv[1], ios::in);
if (!ptr) {
cout << "Error. Can't open " << argv[1] << endl;
}
else {
ptr.get(ch);
while (!ptr.eof()) {
if(ch == '{' || ch == '}') {
cout << "Bracket Nesting Level: " << level << endl;
}
if(ch=='{') {
level++;
openBracket++;
}
else if(ch=='}') {
level--;
closeBracket++;
}
ptr.get(ch);
}
cout << "Bracket Nesting Level: " << level << endl;
cout << "Open Bracket Count: " << openBracket << endl;
cout << "Close Bracket Count: " << closeBracket << endl;
}
ptr.close();
}
return 0;
}