C++ help Please

Hi experts,

I have the code as following. Can anyone give an idea how to place two strings in the file into two vectors ?
Thank you very much!

*****************************************************
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <cstring>

using namespace std;

 #define size 1000

int main()
{
             
      ofstream SaveString("strings.dat", ios::out);
      SaveString << "Test string1\n";
      SaveString << "Test string2\n";
      SaveString.close();


      ifstream Openstring("strings.dat", ios::in);
      char str;
      
      while (!Openstring.eof())
      {
            Openstring.get(str);
            cout << str;
      
      }

      Openstring.close();

/      return 0;
}
*************************************************
RyanbhlAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

rstaveleyCommented:
Not sure if I understood your question properly, but does this help?

--------8<--------
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <string>

int main()
{
        std::vector<std::string> v;

        // Load the vector - use push_back to grow it accordingly      
        v.push_back("Test string 1");
        v.push_back("Test string 2");

        // Load the strings into the file
        {
                std::ofstream fout("strings.dat");
                copy(v.begin(),v.end(),std::ostream_iterator<std::string>(fout,"\n"));
        }

        // Read the strings from the file
        {
                std::ifstream fin("strings.dat");
                std::string str;
                while (getline(fin,str))
                        std::cout << str << '\n';
        }
}
--------8<--------
0
RyanbhlAuthor Commented:
Hi  rstaveley,

Thank you very much for your help.

May be I did make it clear enough. I have a file stores two strings above, now I want to read the file, take two the strings and put them into two seperate vectors.

Example:
I have two vectors : vec1, vec2
Now, I want to put "Test string 1" into "vec1" ; and "Test string 2" into "vec2" by reading them from the file.
0
meow00Commented:
Hi,
 
     How about the following code ? ( PS. you might want to change #include <string> to #include <cstring> ... depends on ur compiler )

meow.
---------------------------------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <vector>
#include <string>

using namespace std;

#define size 1000

int main()
{

     ofstream SaveString("strings.dat", ios::out);
     SaveString << "Test string1\n";
     SaveString << "Test string2\n";
     SaveString.close();

     ifstream Openstring("strings.dat", ios::in);
     string temp ;
     int count = 0 ;
     vector<string> vec1, vec2 ;

     while (!Openstring.eof())
     {
        getline(Openstring,temp) ;
        (count%2 ==0)? vec1.push_back(temp): vec2.push_back(temp) ;
        count ++ ;
     }

     Openstring.close();

     cout << "print vec1() :" << endl ;
     for(vector<string>::const_iterator it1 = vec1.begin(); it1 != vec1.end(); ++it1)
        cout << *it1 << endl ;

     cout << "print vec2() :" << endl ;
     for(vector<string>::const_iterator it2 = vec2.begin(); it2 != vec2.end(); ++it2)
        cout << *it2 << endl ;

     return 0;
}

-------------------------------------------------------
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

RyanbhlAuthor Commented:
Thank you meow00,

Yes, that is what I am trying to do right now.
May I ask a question ?  

******************************************************
(count%2 ==0)? vec1.push_back(temp): vec2.push_back(temp) ;
******************************************************
In the line above, what does "count%2 == 0" mean ?? I am have some confuse here. I am very glad if you can explain it to me.

Again, Thank you very much for your guide.
0
rstaveleyCommented:
> (count%2 ==0)? vec1.push_back(temp): vec2.push_back(temp) ;

This is equivalent to

    if (count % 2 == 0)             /* If count is an even number */
        vec1.push_back(temp);
    else
        vec2.push_back(temp) ;

It pushes the tring alternately into one vector and then the other.
0
meow00Commented:
Yes, rstaveley is correct !

 "(statement) ? A : B ;" means :
  if statement is true, we execute A ;
  if statement if false, we execute B ;
--------------------------------------------
 Also,  % means the residual of the division (modulus).
 e.g.    7/3 = 2 ......1   -> 7%3 = 1
           8/2 = 4 ......0   -> 8%4 = 0
           9/5 = 1 ......4   ->  9%5 = 4
                             ^
                          This is the residual
0
RyanbhlAuthor Commented:
Thank you rstaveley and meow00 a lot,

Now I understand a lot more and know how to use the statement:  "(statement) ? A:B . I was doubt about this before but not anymore.
I really apreciate you guys.

Ryanbhl
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.