Считать строку из файла, посчитать кол-во символов и "присвоить" ее классу исходя из кол-ва символов. С++

Есть файл .txt в нем строки типа

1-я строка:  1) "какой-то текст" 2) какой-то текст 3)...
2-я строка:  1) "какой-то текст" 2) какой-то текст 3)...

Как присвоить строку классу исходя из кол-ва символов в строке? Например строка из 100 символов присваивается классу Stosimb. Это весь код, который смог написать. p.s. Компилируемый код.

#include <string>
#include <fstream>
#include <Windows.h>
#include <cstring>

using namespace std;

/*class Msg
{
Public:
Msg(){}
Msg(string ms)
{
this->ms = ms;
}
void Print()
    {cout <<  ms << endl;   }
    char ms;
}*/

int main()
{
    //ifstream fin;
    fstream fs;
    fs.open("myfile.txt", fstream::in | fstream::app);
    while(!fs.eof())
    for (int i = 0; i < 2; i++)
    {
        string msg;
        SetConsoleOutputCP(1251);
        getline(fs, msg);
        cout << msg << " ";
        cout << msg.length() << " characters\n"; 
        /*while(fin.read((char*)&msg, sizeof(Msg)))
        {
        ms.Print();
        }*/
    }
    fs.close();
    //ifs.close();
}

Ответы (1 шт):

Автор решения: KoVadim

Учитывая все вышесказанное в комментариях, сделаем простой пример.

#include <string>
#include <fstream>
#include <iostream>

using namespace std;

class Msg
{
public:
  Msg(){}
  Msg(string ms) :m_ms{ms} {}
    void Print() {
        cout <<  m_ms << endl;
    }
private:
    string m_ms;
};

int main()
{
    fstream fs("file");
    if (!fs) {
        cout << "ups\n"; // если файл не открылся, нужно бежать
        return 1;
    }
    string msg;
    while(getline(fs, msg)) // если строк нет, тут будет false и цикл завершится
    {
        if (msg.length() > 10) { // эта строка избрана, она достаточно длинная
            Msg m(msg); // "передадим классу строку" (да, звучит некорректно)
            m.Print(); // что то сделаем, напечатаем
        }
    }
}

Будут уточнения в условии, будут уточнения в коде.

→ Ссылка