{"action":"opened","issue":{"url":"https://api.github.com/repos/ilyarom/OOP-Projects/issues/1","repository_url":"https://api.github.com/repos/ilyarom/OOP-Projects","labels_url":"https://api.github.com/repos/ilyarom/OOP-Projects/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/ilyarom/OOP-Projects/issues/1/comments","events_url":"https://api.github.com/repos/ilyarom/OOP-Projects/issues/1/events","html_url":"https://github.com/ilyarom/OOP-Projects/issues/1","id":176179243,"number":1,"title":"Замечания по FindText","user":{"login":"oMystique","id":14878773,"avatar_url":"https://avatars.githubusercontent.com/u/14878773?v=3","gravatar_id":"","url":"https://api.github.com/users/oMystique","html_url":"https://github.com/oMystique","followers_url":"https://api.github.com/users/oMystique/followers","following_url":"https://api.github.com/users/oMystique/following{/other_user}","gists_url":"https://api.github.com/users/oMystique/gists{/gist_id}","starred_url":"https://api.github.com/users/oMystique/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oMystique/subscriptions","organizations_url":"https://api.github.com/users/oMystique/orgs","repos_url":"https://api.github.com/users/oMystique/repos","events_url":"https://api.github.com/users/oMystique/events{/privacy}","received_events_url":"https://api.github.com/users/oMystique/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-10T13:18:27Z","updated_at":"2016-09-10T13:18:27Z","closed_at":null,"body":"* Необходимо добавить в .gitignor продукты сборки c++ проектов. Пример - https://github.com/alexey-malov/oop/blob/master/.gitignore\r\n* Так же, необходимо следить за тем, чтобы в процессе сборки не было предупреждений. В вашей программе предупреждения есть.\r\n![warnings in program](https://cloud.githubusercontent.com/assets/14878773/18410437/dbdee558-776b-11e6-80a7-3f9c60f2e8f5.png)\r\nРекомендуется использовать 4 уровень предупреждений. О том, как его использовать:\r\n![warning_level](https://cloud.githubusercontent.com/assets/14878773/18410443/f16a2bb2-776b-11e6-9876-ad31bec19305.png)\r\n\r\n* Что касается кода:\r\n\r\n```c++\r\n\tifstream file(argv[1]);\r\n\tif (!file.good())\r\n\t{\r\n\t\tcout << \"Некорректно введены входные данные, сначала указывается имя файла, далее через пробел строка, которую нужно найти\" << \"\\n\";\r\n\t\treturn 1;\r\n\t}\r\n```\r\nДля проверки успешности открытия файла лучше использовать `file.is_open()`. Так же, из текста сообщения не совсем понятно в чём конкретно проблема. Лучше явно написать о том, что, к сожалению, невозможно открыть файл и уже затем напечатать подсказку.\r\n\r\n*\r\n```c++\r\n\tstring strToFind = string(argv[2]);\r\n```\r\n В данном случае не стоит явно отправлять массив char-ов в конструктор std::string и затем присваивать сконструированный объект. С задачей присваивания вполне может справиться стандартный оператор присваивания std::string\r\n```c++\r\n\tstring strToFind = argv[2];\r\n```\r\n* Лучше опять же более конкретно описать ошибку, и затем напечатать подсказку\r\n```c++\r\n\tif (strToFind.length() == 0)\r\n\t{\r\n\t\tcout << \"Некорректно введены входные данные, сначала указывается имя файла, далее через пробел строка, которую нужно найти\" << \"\\n\";\r\n\t\treturn 1;\r\n\t}\r\n```\r\nИ опять же, вместо явной проверки строки на пустоту  `strToFind.length() == 0` можно использовать конструкция `strToFind.empty()`.\r\n\r\n* Этот велосипед можно заменить методом `find` std::string\r\n```c++\r\nfor (int j = 0; j < line.length(); ++j)\r\n\t\t{\r\n\t\t\tif (line[j] == strToFind[i])\r\n\t\t\t{\r\n\t\t\t\t++i;\r\n\t\t\t\tif (i == strToFind.length())\r\n\t\t\t\t{\r\n\t\t\t\t\tcout << currentLine << \"\\n\";\r\n\t\t\t\t\tstrFinded = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ti = 0;\r\n\t\t\t}\r\n\t\t}\r\n```\r\nПримеры использования можно найти тут: http://www.cplusplus.com/reference/string/string/find/\r\n\r\n* \"В комплекте с программой должны обязательно поставляться файлы, позволяющие проверить корректность её работы в автоматическом режиме.\" \r\nПример можно найти тут: https://github.com/alexey-malov/oop/tree/master/labs/lab1/CopyFile\r\n\r\n* Да, и в данном случае, программа работает не корректно (не находит \"Евгения Онегина\" в строке `Евгений Евгений Онегин.`\r\n\r\nПока **k=0**."}}
{"actor":{"display_login":"oMystique"}}