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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 22:12   #1
icar1992
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 10
По умолчанию инвертировать строки в файле(язык си)

Доброго всем времени суток) Перейду сразу к делу:Есть текстовый файл, требуется инвертировать строки в нём и записать в другой файл. По задумке хотел создать массив указателей на массив в которых будут строки а потом инвертировать этот массив. Пробовал реализовать но как то криво пошло. Если кто поможет с решением и объяснением данной проблемы буду очень признателен.
П.С. В проге нельзя использовать контейнеры и алгоритмы STL (<string>, <vector>, <map>, ...) а также ввод-вывод в стиле С++ (классы ifstream/ofstream/…).
вот код
Код:
char a[255];
 void per() // Perevorot
{ 
for (int i=strlen(a);i>=0;i--)
getchar();
} 
 
void func2(int argc, char *argv[]) // Invertiruet stroki 
{
        int m=255;
        char str[100];
        FILE *fp=NULL;
        fp = fopen("d:\\Input.txt", "w+");
        if (fp!=NULL)
        {
                int nl, c; // Podschet strok
                nl = 0; 
                while ((c = getchar()) != EOF)
                        if (c == '\n')
                                ++nl;
                char **mtx=(char**)malloc(nl*sizeof(char)); // массив
                if(mtx == NULL)
                        cout << "Error: cannot allocate memory" <<"\n";
                for(int i=0;i<nl;i++)
                {
                        mtx[i]=(char*)malloc(m*sizeof(char));
                        if(mtx[i] == NULL)
                                cout << "Error: cannot allocate memory" <<"\n";
                }
                while(!feof(fp)) 
                {
                        fgets(str,100,fp);
                        mtx = str;
                }
                a = mtx;
        per();
    fwrite(&a, sizeof(char), 1, fp);
        fclose(fp);
        }
        else 
                printf("Cannot open file, error code: %d", errno);
} ar a[255];
 void per() // Perevorot
{ 
for (int i=strlen(a);i>=0;i--)
getchar();
} 
 
void func2(int argc, char *argv[]) // Invertiruet stroki 
{
        int m=255;
        char str[100];
        FILE *fp=NULL;
        fp = fopen("d:\\Input.txt", "w+");
        if (fp!=NULL)
        {
                int nl, c; // Podschet strok
                nl = 0; 
                while ((c = getchar()) != EOF)
                        if (c == '\n')
                                ++nl;
                char **mtx=(char**)malloc(nl*sizeof(char)); // массив
                if(mtx == NULL)
                        cout << "Error: cannot allocate memory" <<"\n";
                for(int i=0;i<nl;i++)
                {
                        mtx[i]=(char*)malloc(m*sizeof(char));
                        if(mtx[i] == NULL)
                                cout << "Error: cannot allocate memory" <<"\n";
                }
                while(!feof(fp)) 
                {
                        fgets(str,100,fp);
                        mtx = str;
                }
                a = mtx;
        per();
    fwrite(&a, sizeof(char), 1, fp);
        fclose(fp);
        }
        else 
                printf("Cannot open file, error code: %d", errno);
}
пример:
в файле in:
препод
козел
в файл out должно быть введено:
козел
препод

Последний раз редактировалось icar1992; 29.11.2011 в 22:56. Причина: добавил пример
icar1992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки в файле Бидон Общие вопросы C/C++ 7 08.06.2011 20:10
Замена строки в файле - C tools Помощь студентам 1 20.12.2010 01:39
Замена строки в файле blacknotblack Общие вопросы .NET 3 13.03.2010 12:09
Поиск строки в файле Gwynbleidd Общие вопросы C/C++ 1 08.10.2008 01:45
Строки в файле werser Общие вопросы Delphi 1 24.05.2008 21:22