Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

C++, Tenta uppgift? ( I/O )
Nu fungerar koden, tack för hjälpen.

Postad 11:10 - 29:e Augusti 2006
C++, Tenta uppgift? ( I/O )
tack för infot.

Då förmodar jag att jag har gjort rätt i koden.


Postad 22:26 - 26:e Augusti 2006
C++, Tenta uppgift? ( I/O )
så här blev det nu

fungerar och kompilera

  1. string FileWrapper::getLine( int i )const throw(range_error) {
  2. try
  3. {
  4. return v[i];
  5. }
  6. catch(range_error)
  7. {
  8. cout << "Caught an exception with range_error: ";
  9. }
  10. }


undrar om det ser rätt ut? Eller måste man använda range_error i cout?

Postad 13:07 - 26:e Augusti 2006
C++, Tenta uppgift? ( I/O )
ska ta reda på hur exceptions fungerar. Har använt det tidigare med try och catch. Men aldrig sett throw (range_error) vet liksom inte vad man ska göra med range_error.. Klagar på den om att den inte är någon identiefer.

Postad 12:54 - 26:e Augusti 2006
C++, Tenta uppgift? ( I/O )
Har löst problemet.

hoppas denna lösning duger

Sen tänkte jag lägga till "throw (range_error) som finns i
getLine( int i ) const;// throw (range_error) och putLine( const string &s, int i ). Men vet inte hur man går tillväga?

Koden
  1. #include<iostream>
  2. #include<fstream>
  3. #include<vector>
  4. #include<string>
  5. using namespace std;
  6. class FileWrapper{
  7. public:
  8. FileWrapper( const char *fileName );
  9. ~FileWrapper();
  10. long lineCount() const;
  11. string getLine( int i ) const throw (range_error);
  12. void putLine( const string &s, int i ) throw (range_error);
  13. void print();
  14. private:
  15. vector<string> v;
  16. char file[50];
  17. };
  18. FileWrapper::FileWrapper( const char *fileName ) {
  19. ifstream in;
  20. in.open(fileName);
  21. if (!in){
  22. cerr << "Unable to open" << endl;
  23. exit(1);
  24. }
  25. char c[256];
  26. while ( in.getline(c,256) )
  27. v.push_back(c);
  28. strcpy(file,fileName);
  29. }
  30. FileWrapper::~FileWrapper(){
  31. ofstream ut;
  32. ut.open(file);
  33. if ( !ut){
  34. cerr <<"unable to open" << endl;
  35. exit(1);
  36. }
  37. for ( int i=0;i<v.size();i++ )
  38. ut << getLine(i) << endl;
  39. }
  40. long FileWrapper::lineCount()const {
  41. long count = 0;
  42. for ( int i=0; i<v.size();i++ )
  43. count++;
  44. return count;
  45. }
  46. string FileWrapper::getLine( int i ) const throw (range_error){
  47. string line;
  48. return line = v[i];
  49. }
  50. void FileWrapper::putLine( const string &s, int i )throw (range_error) {
  51. v[i]=s;
  52. }
  53. void FileWrapper::print(){
  54. for ( int i=0; i<v.size();i++ )
  55. cout <<v[i]<<endl;
  56. }
  57. int main() {
  58. FileWrapper f("test.txt");
  59. f.putLine("hej",6);
  60. f.print();
  61. cin>> ws;
  62. return 0;
  63. }


Postad 23:48 - 25:e Augusti 2006

Skicka meddelande
Läs s blog