Выравнивание строк в C ++ с помощью ввода-вывода - PullRequest
0 голосов
/ 22 октября 2019

Я создаю программу, которая оправдывает абзац, чтобы каждая строка имела длину 75 символов. Я создал функции, которые будут вставлять пробелы и создавать нужные длины, но у меня возникают проблемы с чтением текстового файла и попыткой разбить его на строку. Каждая предоставленная строка меньше, чем предел в 75 символов, и мои функции работают правильно, когда ему дается только строка. Но я не знаю, как читать построчно, манипулировать им, а затем записывать в мой новый файл .txt. Когда я вывожу это в новый текстовый файл, меня приветствует выровненная строка текста, а не текст в блоке абзаца!

Я попытался создать цикл if else, который будет запускаться только тогда, когда string.length () меньше 75 символов, и будет создавать новую строку, когда false, но я не знаю, как создать этоновая строка в программе

string myString;
string line("\n");

while (getline(inFile, myString))
{
    cout << myString << endl;
    puncLoop(myString);
    spaceLoop(myString);
}

}

1 Ответ

0 голосов
/ 22 октября 2019

Для вывода файла с новой строкой вы можете использовать "\n".

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

int main() {

    //in file object
    std::ifstream inFile("example.txt");

    //out file object
    std::ofstream outFile ("example2.txt", std::ios_base::out | std::ios_base::trunc );

    //Checking if file exist
    if( inFile && outFile  )
    {
        //temp valarable to store each line
        std::string mystring;
        //Loop through each line
        while (getline(inFile, mystring)) 
        {
            //... Call Your Business Logic functions here, ( make use of pass by refernce or return to get back the string )

            outFile << mystring.c_str() << "\n";
        }

        //closing file after completing
        inFile.close();
        outFile.close();
    }
    else
    {
        std::cout << "Could not open File to read or write"<<std::endl;
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...