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

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

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

Помогите пожалуйста. Код написал на плюсах, не знаком с шарпом, учу, но пока не достаточно знаний.
Листинг программы
  1. #include <iostream>
  2. #include <fstream>
  3. #include <sstream>
  4. #include <vector>
  5. #include <iterator>
  6. #include <locale.h>
  7. #include <cstdlib>
  8. using namespace std;
  9. const char fnamein[]="f.doc";
  10. int main()
  11. {
  12. setlocale(LC_ALL,"Rus");
  13. size_t count=0; //Число символов в файле
  14. char S; //для подсчета символов
  15. freopen("f1.txt","w",stdout);
  16. /*Просто считаем число символов*/
  17. ifstream f(fnamein);
  18. while (!f.eof())
  19. {
  20. f.get(S);
  21. count++;
  22. }
  23. f.close();
  24. /*Добавляем текст в переменную*/
  25. char *S2=new char [count]; //Выделяем память по определенному числу символов
  26. for (int i=0;i<count;i++) S2[i]=NULL; //Очищаем строку от хлама
  27. ifstream f2(fnamein); //создаем поток для работы с файлом
  28. int i=0; //курсор на текущий символ (как номер буквы в слове)
  29. while (!f2.eof()) //Проходим по файлу
  30. {
  31. f2.get(S2[i]); //Записываем символ за символом
  32. i++; //передвинули курсор для записи следующего символа
  33. }
  34. f2.close(); //закончили работу с файлом
  35. // cout<<S2<<endl; //Теперь переменная char[] содержит текст из файла
  36. stringstream ss(S2);
  37. vector <string> vstr;
  38. int a=1;
  39. string temp;
  40. // слова из строки S2 - в вектор слов
  41. int sch=0;
  42. i=0;
  43. while (ss >> temp)
  44. vstr.push_back(temp);
  45. // вывод слов из вектора
  46. // copy(vstr.begin(), vstr.end(), std::ostream_iterator<string>(cout, "\n"));
  47. cout<<"Страница 1:\n";
  48. for (int q = 1; q<= vstr.size()/100; q++)
  49. {
  50. if (i>=50) cout<<"\n\n\n\n\n\n\n\n\n\nСтраница: "<<a<<endl;
  51. while (sch<50) {
  52. cout<<vstr[i]<<" "<<vstr[i+50]<<endl; sch++;
  53. i++;
  54. } sch=0; a++;
  55. i=i+50;
  56. }
  57. delete []S2; //освобождаем память
  58. /**************************************/
  59. return 0;
  60. }
Условие задачи - прочитать текст из файла, разделить на две колонны по 50 строк и каждый раз на новую страницу отправлять каждые 50 строк. Кстати, если можно подравняйте, пожалуйста, слова.. Ибо получается примерно так: pervoe slovo dva 4toto Пробовал переводчики, в них нет такого понятия как fstream и т.д., да и многовато разного...
Кто может помочь?
Апаю

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

textual
Листинг программы
  1.     class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             if (args.Length < 1)
  6.                 return;
  7.  
  8.             string path = args[0];
  9.             List<string> words = new List<string>();
  10.             char[] separators = new char[] { ' ', '-', ',' };
  11.  
  12.             using (StreamReader reader = new StreamReader(path))
  13.             {
  14.                 string str;
  15.  
  16.                 while (!reader.EndOfStream)
  17.                 {
  18.                     str = reader.ReadLine();
  19.                     words.AddRange(str.Split(separators, StringSplitOptions.RemoveEmptyEntries));
  20.                 }
  21.             }
  22.  
  23.             Func<List<string>, int, string> getWord = (list, index) =>
  24.             {
  25.                 return (index < list.Count) ? list[index] : String.Empty;
  26.             };
  27.  
  28.             for (int shift = 0; shift < words.Count; shift += 100)
  29.             {
  30.                 for (int index = 0; index < 50; index++)
  31.                 {
  32.                     //string str = String.Format("{0,-10} {2} {1,-10} {3}",
  33.                     //    getWord(words, shift + index),
  34.                     //    getWord(words, shift + index + 50),
  35.                     //    shift + index,
  36.                     //    shift + index + 50);
  37.                     string str = String.Format("{0,-50}{1,-50}",
  38.                         getWord(words, shift + index),
  39.                         getWord(words, shift + index + 50));
  40.                     Console.WriteLine(str);
  41.                 }
  42.             }
  43.         }
  44.     }

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы