I'm currently writing some code and I'm finding certain things are are not working correctly. Some sample code:
#include <string> #include <fstream> //#include <iomanip> // for noskipws int main( int argc, char* argv[] ) { ifstream ifile( argv[ 1 ] ); if ( !ifile ) { cerr << "Cannot open the file, " << argv[ 1 ] << " for reading.\n"; } string word; ifile.unsetf( ios::skipws ); // this should eliminate using whitespace as // a delimiter, it doesn't. Why? //ifile >> noskipws >> word; // doesn't work, error says noskipws // undefined ifile >> word; cout << word << endl; return 0; } The unsetf() function seems to do nothing at all. I'm getting the first word of the file I'm reading from, rather than the whole file as a long string. noskipws also doesn't work, even with including <iomanip>. The book, The C++ Programming Language, shows that these should work. Another sample of code: #include<bitset> #include<iostream> #include<string> using namespace std; int main() { unsigned int number_entered; cout << "Enter a number to be converted to binary." << endl; cin >> number_entered; bitset< 32 > binary_val( number_entered ); string bitval( binary_val.to_string() ); cout << "The value in binary is: " << bitval << endl; return 0; } The to_string() function gives this error message when I try to compile. bitsets.C:15: no matching function for call to `bitset<32,long unsigned int>::to_string ()' This function is able to be called on a bitset. The book, C++ Primer uses this. The version of glib++ and gcc are as follows: Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs gcc version 2.95.4 20011006 (Debian prerelease) libstdc++2.10- 2.95.4-0.01100 The GNU stdc++ library libstdc++2.9-g 2.91.66-4 The GNU stdc++ library (old egcs version) Am I hopelessly misguided or is this not my error? Ian -- FreeSoftware Developer Registered GNU/Linux user 239985 and user of Debian GNU/Linux
pgpdqvDZKoRbX.pgp
Description: PGP signature