Как изменить порядок входного файла с помощью C ++? - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужно изменить порядок файлов и вывести их в другой файл.Например, ввод

:

hello
this is a testing file again
just    so    much  fun

Ожидаемый вывод:

just    so    much  fun
this is a testing file again 
hello

Это мой текущий код, он распечатывается туда, где он меняет порядок строкно и порядок символов каждого слова.

Ток:

nuf  hcum    os    tsuj
 niaga elif gnitset a si siht
olleh

int print_rev(string filename, char c){
  ifstream inStream (filename);
  ofstream outStream;
  inStream.seekg(0,inStream.end);
  int size = inStream.tellg();
  outStream.open("output.txt");

  for (int j=1; j<=size; j++){ 
    inStream.seekg(-j, ios::end);
    c=inStream.get();
    outStream << c;
  }

  inStream.close();
  outStream.close();
  return 0;
}

1 Ответ

0 голосов
/ 21 февраля 2019

Вы переворачиваете весь файл, символ за символом.То, что вы хотите сделать, это прочитать в каждой строке отдельно, а затем изменить порядок строк.

Стек строк кажется хорошим выбором для этого:

int printRev(string filename)
{
    stack<string> lines;
    ifstream in(filename);
    string line;
    while (getline(in, line))
    {
        lines.push(line);
    }
    ofstream out("output.txt");
    while (!lines.empty())
    {
        out << lines.top() << endl;
        lines.pop();
    }
    return 0;
}
...