Re: exception on string (out_of_range)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
--110364418-958004038-1310057608=:18311
Content-Type: TEXT/PLAIN; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: QUOTED-PRINTABLE
On Thu, 7 Jul 2011, eric wrote:
On Jul 7, 8:33 am, F=D6LDY Lajos <fo...@rmki.kfki.hu> wrote:
On Thu, 7 Jul 2011, eric wrote:
Dear Advanced C++ programers:
from book (c++ cookbook), chapter 4, section 3: Storing Strings in a
Sequence
---------
#include <iostream>
#include <vector>
#include <exception>
using namespace std;
int main() {
char carr[] = {'a', 'b', 'c', 'd', 'e'};
cout << carr[100000] << '\n'; // Whoops, who knows what's goi=
ng
to happen
vector<char> v;
v.push_back('a');
v.push_back('b');
v.push_back('c');
v.push_back('d');
v.push_back('e');
try {
cout << v.at(10000) << '\n'; // at checks bounds and throws
} catch(out_of_range& e) { // out_of_range if it's inval=
id
cerr << e.what() << '\n';
}
}
----------------------------------------------------------------------
my g++ response
-----------------
eric@eric-laptop:~/cppcookbook/download$ g++ 4-7.cpp
4-7.cpp: In function ?int main()?:
4-7.cpp:20:11: error: expected type-specifier before ?out_of_range?
4-7.cpp:20:23: error: expected ?)? before ?&? token
4-7.cpp:20:23: error: expected ?{? before ?&? token
4-7.cpp:20:25: error: ?e? was not declared in this scope
4-7.cpp:20:26: error: expected ?;? before ?)? token
-----------------------------------------------------------------------=
--------------
the code can be download from
http://examples.oreilly.com/9780596007614/
that mean it was tested success in some platform(vc++ in xp), so
please help, thanks a lot in advance, Eric
Try:
...
} catch(exception& e) { // out_of_range if it's inval=
id
...
regards,
Lajos
-------------------------------------------------------------------------=
--------------------------
Thanks both Lajos and Mike Doubez's suggestions , and it can compile
now by following your suggestion
but, it did not run as expected
-----------
eric@eric-laptop:~/cppcookbook/ch4$ g++ Example4-7.cpp
eric@eric-laptop:~/cppcookbook/ch4$ ./a.out
Segmentation fault
---------------------------------------------------------
Do you know why it didn't go through the catch of my program rather
than through compiler(or operationSystem)'s?
Thanks your help a lot in advance, Eric
carr[100000] may be too far off. Try with carr[10] and v.at(10).
regards,
Lajos
--110364418-958004038-1310057608=:18311--