fstream

This is a discussion on fstream within the C++ Programming forums, part of the General Programming Boards category; Code: #include <fstream> #include <iostream> #include <string> using namespace std; int main() { char str[100]; ofstream a_file ( "example.txt" ); ...

  1. #1
    1337
    Join Date
    Jul 2008
    Posts
    135

    fstream

    Code:
    #include <fstream>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
      char str[100];
    
      
      ofstream a_file ( "example.txt" );
      
      a_file<<"This text will now be inside of example.txt";
      
      a_file.close();
      
      ifstream b_file ( "example.txt" );
      
      
      b_file>> str;
      
      cout<< str <<"\n";
      cin.get();    
     
    }


    why is just prints "this", it supposed to print "This text will now be inside of example.txt".
    is there any solution for this?

  2. #2
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,681
    Because reading a string from a file it stops at whitespaces.

    I beleive if you set "noskipws" on your iostream line, it will not do that.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  3. #3
    1337
    Join Date
    Jul 2008
    Posts
    135
    how to set that? is it something like

    Code:
    #include <fstream>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
      char str[100];
    
      
      ofstream a_file ( "example.txt" );
      
      a_file<<noskipws<<"This text will now be inside of example.txt";
      
      a_file.close();
      
      ifstream b_file ( "example.txt" );
      
      
      b_file>> str;
      
      cout<< str <<"\n";
      cin.get();    
    }
    if this is the case, i still get the "this", not the full string.
    Last edited by valthyx; 07-22-2008 at 10:16 AM.

  4. #4
    Registered User hk_mp5kpdw's Avatar
    Join Date
    Jan 2002
    Location
    Northern Virginia/Washington DC Metropolitan Area
    Posts
    3,674
    The noskipws is used in conjunction with the ifstream object, not the ofstream object.
    I used to be an adventurer like you... then I took an arrow to the knee.

  5. #5
    The larch
    Join Date
    May 2006
    Posts
    3,573
    To read a line of input into a string std::getline is used:

    Code:
    getline(b_file, str);
    I might be wrong.

    Thank you, anon. You sure know how to recognize different types of trees from quite a long way away.
    Quoted more than 1000 times (I hope).

  6. #6
    1337
    Join Date
    Jul 2008
    Posts
    135
    none of the above works

  7. #7
    Deathray Engineer MacGyver's Avatar
    Join Date
    Mar 2007
    Posts
    3,211
    Or chances are you messed up..... again.

  8. #8
    Registered User
    Join Date
    Jan 2005
    Posts
    7,319
    >> none of the above works
    anon's suggestion assumes you're using C++ strings, but your code uses C style strings. Either switch to C++ strings or lookup getline for C style strings.

  9. #9
    1337
    Join Date
    Jul 2008
    Posts
    135
    Code:
    #include <fstream>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
      char str[10];
    
      
      ofstream a_file ( "example.txt" );
      a_file<<"This text will now be inside of example.txt";
      
      a_file.close();
      
      ifstream b_file ( "example.txt" );
      
      
      b_file>>noskipws>>str;
      
      cout<<noskipws<< str <<"\n";
      cin.get();    
     
    }

    didnt work

  10. #10
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,681
    That is correct, I just tried it - but getline should definitely work. Just pass in sizeof(str) as the size, and you should get the 9 first letters of your line. Obviously, reading the entire line will severely overflow your 10 character long array, so that would be a bad idea.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Problems with fstream, one variabile for write and read
    By Smjert in forum C++ Programming
    Replies: 3
    Last Post: 02-03-2009, 09:19 PM
  2. Fstream. I/O
    By kevinawad in forum C++ Programming
    Replies: 2
    Last Post: 07-07-2008, 09:19 AM
  3. ARGH! fstream errors
    By OttoDestruct in forum C++ Programming
    Replies: 2
    Last Post: 04-29-2004, 10:37 PM
  4. Are fstream and ofstream incompatible?
    By johnnyd in forum C++ Programming
    Replies: 5
    Last Post: 03-19-2003, 11:21 AM
  5. Problems with fstreams.
    By mosdef in forum C++ Programming
    Replies: 7
    Last Post: 06-19-2002, 03:36 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21