Перевод с C++ на C#. Вывод текста в колонках

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста. Код написал на плюсах, не знаком с шарпом, учу, но пока не достаточно знаний.
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <iterator>
#include <locale.h>
#include <cstdlib>
 
using namespace std;
 
const char fnamein[]="f.doc";
int main()
{
    setlocale(LC_ALL,"Rus");
    
    size_t count=0; //Число символов в файле
    char S; //для подсчета символов
    freopen("f1.txt","w",stdout);
    /*Просто считаем число символов*/
    ifstream f(fnamein);
    while (!f.eof()) 
    {
        f.get(S);
        count++;
    }
    f.close();  
    
    /*Добавляем текст в переменную*/
    
    char *S2=new char [count]; //Выделяем память по определенному числу символов
    for (int i=0;i<count;i++) S2[i]=NULL; //Очищаем строку от хлама
        ifstream f2(fnamein);  //создаем поток для работы с файлом
         int i=0; //курсор на текущий символ (как номер буквы в слове)
 
         while (!f2.eof()) //Проходим по файлу
         {
             f2.get(S2[i]); //Записываем символ за символом 
             i++; //передвинули курсор для записи следующего символа
         }
         
        f2.close(); //закончили работу с файлом
   //     cout<<S2<<endl; //Теперь переменная char[] содержит текст из файла
    stringstream ss(S2);
    vector <string> vstr;
    int a=1;
    string temp;
    // слова из строки S2 - в вектор слов
   int sch=0;
   i=0;
    while (ss >> temp)
        vstr.push_back(temp);
     // вывод слов из вектора
   // copy(vstr.begin(), vstr.end(), std::ostream_iterator<string>(cout, "\n"));
   cout<<"Страница 1:\n";
    for (int q = 1; q<= vstr.size()/100; q++)
        {
            if (i>=50) cout<<"\n\n\n\n\n\n\n\n\n\nСтраница: "<<a<<endl; 
            while (sch<50) {
            cout<<vstr[i]<<"            "<<vstr[i+50]<<endl; sch++; 
            i++;
        } sch=0; a++;
            i=i+50;
        }
    delete []S2; //освобождаем память
    /**************************************/
    return 0;
}
Условие задачи - прочитать текст из файла, разделить на две колонны по 50 строк и каждый раз на новую страницу отправлять каждые 50 строк. Кстати, если можно подравняйте, пожалуйста, слова.. Ибо получается примерно так: pervoe slovo dva 4toto Пробовал переводчики, в них нет такого понятия как fstream и т.д., да и многовато разного...
Кто может помочь?
Апаю

Решение задачи: «Перевод с C++ на C#. Вывод текста в колонках»

textual
Листинг программы
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 1)
                return;
 
            string path = args[0];
            List<string> words = new List<string>();
            char[] separators = new char[] { ' ', '-', ',' };
 
            using (StreamReader reader = new StreamReader(path))
            {
                string str;
 
                while (!reader.EndOfStream)
                {
                    str = reader.ReadLine();
                    words.AddRange(str.Split(separators, StringSplitOptions.RemoveEmptyEntries));
                }
            }
 
            Func<List<string>, int, string> getWord = (list, index) =>
            {
                return (index < list.Count) ? list[index] : String.Empty;
            };
 
            for (int shift = 0; shift < words.Count; shift += 100)
            {
                for (int index = 0; index < 50; index++)
                {
                    //string str = String.Format("{0,-10} {2} {1,-10} {3}",
                    //    getWord(words, shift + index),
                    //    getWord(words, shift + index + 50),
                    //    shift + index,
                    //    shift + index + 50);
                    string str = String.Format("{0,-50}{1,-50}",
                        getWord(words, shift + index),
                        getWord(words, shift + index + 50));
                    Console.WriteLine(str);
                }
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы