I've a task to copy elements from .txt file[direct access file] to .bin file[fixed length record file] (homework). .txt file holds strings. Every line has one word. I came up with code below, but I'm not sure if that's what is needed and even slighly correct. Any help will be useful! (I'm new to C++)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int buffer_size = 30;
class Word{
    char name[buffer_size];
public:
    void setName () // Trying to get every word from a line
    {
        string STRING;
        ifstream infile;
        infile.open ("text.txt");
        while(!infile.eof()) // To get you all the lines.
        {
            getline(infile,STRING); // Saves the line in STRING.
        }
        infile.close();
    }
};
void write_record()
{
    ofstream outFile;
    outFile.open("binFILE.bin", ios::binary | ios::app);
    Word obj;
    obj.setName();
    outFile.write((char*)&obj, sizeof(obj));
    outFile.close();
}
int main()
{
    write_record();
    return 0;
}
NEW APPROACH:
class Word
{
char name[buffer_size];
public:
    Word(string = "");
    void setName ( string );
    string getName() const;
};
    void readWriteToFile(){
        // Read .txt file content and write into .bin file
        string temp;
        Word object;
        ofstream outFile("out.dat", ios::binary);
        fstream fin ("text.txt", ios::in);
        getline(fin, temp);
        while(fin)
        {
            object.setName(temp);
            outFile.write( reinterpret_cast< const char* >( &object ),sizeof(Word) );
            getline(fin, temp);
        }
        fin.close();
        outFile.close();
}
int main()
{
readWriteToFile();
return 0;
}
Word::Word(string nameValue)
{
setName(nameValue);
}
void Word::setName( string nameString )
{
// Max 30 char copy
const char *nameValue = nameString.data();
int len = strlen(nameValue);
len = ( len < 31 ? len : 30);
strncpy(name, nameValue, len);
name[len] = '\0';
}
string Word::getName() const
{
return name; }
 
     
    