| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Слияние двух файлов в один |
| Автор: kandrey 9.10.2009, 15:00 | ||||||||||
| Задание таково: "Написать программу на языке C++ чересстрочного слияния (т.е. первая строка в выходном файле - это первая строка из первого файла, вторая строка в выходном файле - это первая строка из второго файла, третья строка в выходном файле - вторая строка из первого файла и т.д.) двух текстовых файлов с удалением в каждой строке слов после которых стоит любой знак препинания." вот моя прога
file_1.txt
file_2.txt
B.txt
Добавлено @ 15:01 Проблемы: 1) У меня не получилось организовать слияние строк... В моём случае в первом файле 6 строк, а во втором - 12 строк... При черезстрочном слиянии получается, что когда в первом файле обработалось 6 строк и во втором файле 6 строк, в первом файле строки закончились, но во втором и еще 6.. И они копируются оставляя перед собой то какой-то символ, то просто пустую строчку... Как бы сделать, чтобы когда одинаковое кол-во строк в файлах закончилось, и если в каком-то файле еще остались строки, то чтобы они просто скопировались в исходный файл (без пропусков строки и всяких посторонних символов)?? 2) В моем варианте при встрече знака препинания удаляются все предшествующие ему слова... Как бы сделать, чтобы удалялось только то слово после которого стоит знак препинания?? Например, чтобы получилось вот так (это вторая строка первого файла...) Код:
|
| Автор: zim22 9.10.2009, 15:05 |
у тебя программа на Си. то, что ты cout используешь - не делает её С++. |
| Автор: kandrey 9.10.2009, 15:58 | ||
да эт лан, препод говорит пойдет и так... |
| Автор: bsa 9.10.2009, 17:13 | ||
На С++ будет выглядеть примерно так:
|
| Автор: zim22 9.10.2009, 17:19 |
while (in1 || in2) |
| Автор: bsa 9.10.2009, 17:36 |
| zim22, точно. Спасибо. Исправил. Когда писал думал, надо ставить "или"... А поставил "И". |
| Автор: kandrey 9.10.2009, 21:14 | ||||
все дело, что у меня должно работать на Turbo C++ (досовая версия)... Т.к. мне нужно чтобы работало в классе информатики... |
| Автор: bsa 9.10.2009, 21:46 |
| не знаю, есть ли там string... Отличия будут заключаться в наличии расширения у подключаемых файлов (например: iostream.h) и отсутствии std::. Возможно, в той среде нет класса string. В этом случае придется объявить buf как char buf[1024], а вместо std::getline использовать http://www.cplusplus.com/reference/iostream/istream/getline/. А преподавателю рекомендую посоветовать не учить тому, что никому не нужно (можно дать ссылку на это сообщение на форуме). |
| Автор: kandrey 10.10.2009, 10:56 | ||||
спасибо, можешь объяснить что да как здесь работает, а то если честно практически ничего не понятно....
И к данному коду выкидывает еще три ошибки, по которым не понимаю что исправить.. |
| Автор: zim22 10.10.2009, 11:06 | ||
до причины этой ошибки мог бы и сам додуматься |
| Автор: Dov 11.10.2009, 00:13 | ||||
Так что ли?
|
| Автор: kandrey 11.10.2009, 09:21 | ||
Во спасибо это как раз почти что подходит для меня... Только как бы исправить некоторые ошибки?? И где здесь осуществляется поиск знаков препинания?? Все с ошибками разобрался, нужно было подключить модуль с type Объясни пожалуйста некоторые места в проге отмеченные знаками вопроса... |
| Автор: bsa 12.10.2009, 10:16 |
| http://www.cplusplus.com/reference/clibrary/cstring/strpbrk/ http://www.cplusplus.com/reference/clibrary/cctype/ http://www.cplusplus.com/reference/clibrary/cstring/strcpy/ http://www.cplusplus.com/reference/clibrary/cstdio/fgets/ http://www.cplusplus.com/reference/clibrary/cstdio/feof/ |