Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2012, 08:08   #1
Wolferine
Новичок
Джуниор
 
Регистрация: 05.07.2012
Сообщений: 2
Восклицание Разбить файл input.txt на части после символа

Здравствуйте, уважаемые форумчане!
Подскажите, пожалуйста, как написать программку, которая считывает данные из файла input.txt и если находит символ "*", то то, что было до нее, он записывает в файл 1.txt и тут же удаляет из исходного файла, то что записал.
Дальше поиск длится до конца файла по тому же алгоритму, записывая данные от звездочки до звездочки в файлы 2.txt, 3.txt etc.

Надеюсь я ясно излагаю =)
Помогите пожалуйста, срочно нужно!
Заранее благодарю
Wolferine вне форума Ответить с цитированием
Старый 05.07.2012, 08:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка:
Код:
include <fstream>
{
  ifstream fs("input.txt");
  int i=1;
  char fn[255];
  itoa(i,fn,10); 
  fn=strcat(fn,".txt");
  ofstream fd(fn); 
  for(char c;!fs.eof();){
   fs>>c;
   if(c=='*'){
     fs.close(); i++;
     itoa(i,fn,10); 
     fn=strcat(fn,".txt");
     fd.open(fn); 
   } else {fd<<c;}
 }
 fd.close();
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.07.2012, 09:00   #3
Wolferine
Новичок
Джуниор
 
Регистрация: 05.07.2012
Сообщений: 2
По умолчанию

Добавил заголовочные файлы. вставил главную функцию.
но компилятор выдает 2 ошибки.
Вот измененный мною код:
Код:
#include <fstream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
  ifstream fs("input.txt");
  int i=1;
  char fn[255];
  itoa(i,fn,10);
  fn=strcat(fn,".txt");
  ofstream fd(fn);
  for(char c;!fs.eof();){
   fs>>c;
   if(c=='*'){
     fs.close(); i++;
     itoa(i,fn,10);
     fn=strcat(fn,".txt");
     fd.open(fn);
   } else {fd<<c;}
 }
 fd.close();
}
Вот ошибки:
Код HTML:
\file\main.cpp|11|error: incompatible types in assignment of 'char*' to 'char [255]'|
\file\main.cpp|18|error: incompatible types in assignment of 'char*' to 'char [255]'|

Ах да, совсем забыл, использую Code::Blocks 10.05, компилятор GNU GCC
Wolferine вне форума Ответить с цитированием
Старый 05.07.2012, 14:31   #4
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Попробуйте объявить fn так:
Код:
char * fn = (*char)malloc(255*sizeof(char));
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 05.07.2012, 14:48   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Коль скоро пишем все-таки на C++, а не на Си, лучше использовать new вместо malloc (и про delete потом не забыть, конечно). А так - да, присваивать переменной типа char[] значение типа char* нельзя. Наоборот - сколько угодно, а указатель в массив все-таки не превратить.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.07.2012, 21:12   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Согласен. Не учел
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление части строки после символа leus2009 Microsoft Office Excel 3 11.05.2014 02:02
Разбить число на части Surik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 23.02.2011 19:50
Задан текстовый файл Input.txt (C/C++) Igos Помощь студентам 1 30.11.2010 03:16
Разбить строку на 2 части 7KByte Общие вопросы C/C++ 6 31.05.2009 16:51
Разбить файл на 4 части borzoni Паскаль, Turbo Pascal, PascalABC.NET 7 31.05.2008 10:51