Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: BennyBlanco
Дата сообщения: 12.06.2013 20:18
ne_viens
Супер, спасибо
Что нужно чтобы самому расшифрововать, вы дали готовое решение которое мне далекому от програмирования не очень понятно, как компилировать в исполняемый exe файл?
Автор: ne_viens
Дата сообщения: 12.06.2013 21:33
http://rghost.net/46709853
Автор: BennyBlanco
Дата сообщения: 12.06.2013 22:22
ne_viens
Ну это вообще суперски!
Было бы неплохо если бы программа умела кодировать обратно, раскодированный текст.

Добавлено:
BennyBlanco
Или отдельно только для кодировки
Автор: ne_viens
Дата сообщения: 13.06.2013 10:54
http://rghost.net/46718762
Автор: BennyBlanco
Дата сообщения: 13.06.2013 13:10
ne_viens
Огромное спасибо! Теперь полный боекомплект Все работает
Автор: karl 777
Дата сообщения: 21.06.2013 08:07
Помогите найти ошибку.
Я разбираюсь со структурами и узлами. В данной программе я хочу забрать данные из файла и перенести их в файл вывода, как опорная задача, в общем.



Добавлено:
struct Node
{
    float floatnum;                //Вещественное число
    Node *next;                    //Ссылка на следующий узел
};
typedef Node *PNode;            //Указатель на узел

//----------------------------------------------------------------------

PNode Create (float x)            //Создание узла
{
    PNode NewNode=new Node;            //Указатель на новый узел
    NewNode->floatnum=x;            //Заполнение в созданом узле поле с числом
    NewNode->next=NULL;                //Заполнение поля с ссылкой
    return NewNode;
}

//----------------------------------------------------------------------

void AddNode (PNode &Head, PNode NewNode)        //Добавление узла
{
    PNode q=Head;
    if (Head==NULL)                        //Если список пуст, то вставить первый узел
    {
        NewNode->next=q;
        Head=NewNode;
        return;
    }
    while (q->next!=NULL)                    //Поиск крайнего узла
        q=q->next;
    NewNode->next=q->next;
    q->next=NewNode;
}

//----------------------------------------------------------------------
int main()
{
    FILE *in, *out;
    int n;
    float x;
    PNode Head=NULL, p;
    in=fopen("D:\\input.txt","r");

    while (1)
    {
        n=fscanf(in, "%f", x);
        if (n<=0)
            break;
        p=Create(x);
        AddNode(Head, p);
    }

    fclose(in);

    out=fopen("D:\\output.txt", "w");
    p=Head;

    while (p)
    {
        fprintf(out, "%f", p->floatnum);
        p=p->next;
    }
    fclose(out);
}
Автор: ne_viens
Дата сообщения: 21.06.2013 09:20
//...
n=fscanf(in, "%f", &x);
//...
Автор: dragon010
Дата сообщения: 21.06.2013 10:58
karl 777

А память освобождать уже не модно?)

И зачем в список так долго добавлять?
Ты же когда добавляешь очередной элемент, проходишь по всем и ищешь последний.
И того квадрат операций.
При этом можно было написать

void AddNode (PNode &Head, PNode NewNode)
{
NewNode->next=Head;
Head=NewNode;
}

PNode PopNode (PNode &Head)
{
PNode t = Head;
Head = Head->next;
retrun t;
}


и потом выводить соответсвенно через

while ((p = PopNode(Head))) {
fprintf(out, "%f ", p->floatnum);
delete p;
}
Автор: karl 777
Дата сообщения: 21.06.2013 11:08
Благодарю.


Добавлено:

Что может это быть?
Автор: dragon010
Дата сообщения: 21.06.2013 11:17
karl 777

По хорошему еще после

in=fopen("D:\\input.txt","r");
надо бы проверить что in != 0 и что файл существует и программе хватило прав открыть его
ошибка может быть из-за неудачного файла
Автор: karl 777
Дата сообщения: 21.06.2013 11:23
Спасибо.
Автор: dragon010
Дата сообщения: 21.06.2013 11:31
karl 777

а scanf и printf возвращают количество успешно считанных аргументов
т.е. обычно пишут

while (fscanf("%d%d%d", &a, &b, &c) == 3) {

// ...

}
Автор: karl 777
Дата сообщения: 22.06.2013 07:35
Благодарю за информацию.
Автор: karl 777
Дата сообщения: 23.06.2013 07:08
Подскажите, что значит данный код :
OldNode->prev->next = OldNode->next;
Автор: akaGM
Дата сообщения: 23.06.2013 17:39
об этом уже перестали писать в учебниках?
один перс по имени Олд Ноде встал в очередь за другим почти что полным тёзкой в очередь...
Автор: karl 777
Дата сообщения: 23.06.2013 19:18
Да, в учебнике ни слова, к сожалению.
Можно по подробнее, пожалуйста?

Добавлено:
И еще один вопрос:
Как забирать из файла единым "куском" список, допустим в нем данные : ФИО, год рождения, гражданство, и потом вывести его в др. файл также единым блоком?
Fread, Fwritte надо воспользоваться?
Автор: dragon010
Дата сообщения: 23.06.2013 20:51
karl 777

Цитата:
OldNode->prev->next = OldNode->next;


Тут "типа" удаляется элемент из двусвязного списка
Ссылка на следующий элемент у элемента за текущим теперь указывает на след. элемент за текущим

В этом есть какой-то смысл, если не учитывать, что нет проверки, есть ли предыдущий элемент и не проставляется ссылка prev у следующего
(Типа OldNode->next->prev = OldNode->prev)
Но если только существует следующий эл-т
Автор: karl 777
Дата сообщения: 26.06.2013 11:00
Что обозначают записи:
if (Head)...
if (!Tail)...
У меня есть некоторые догадки, но я не уверен.
Автор: ne_viens
Дата сообщения: 26.06.2013 11:40
if(Head) = if(Head !=0)
if(!Head) = if(Head == 0)
Автор: akaGM
Дата сообщения: 26.06.2013 17:35
да дайте ему учебник...
Автор: karl 777
Дата сообщения: 27.06.2013 18:25
ne_viens спасибо!
akaGM Ты сильно острый? Не все сразу!
Автор: AZJIO
Дата сообщения: 27.06.2013 19:55
Учебник в шапке.

karl 777
Попробуй AutoIt3 (ссылка на ru-board'e), учится программированию на нём легче в 10 раз.

Кто то выкладывал код на C#
if (File.Exists(@"C:\Windows\users.ini") == true)
сразу понравился подход как в AutoIt3, просто функция, путь, а не написания кучи кода.
Автор: akaGM
Дата сообщения: 27.06.2013 20:04

Цитата:
Не все сразу!
кричала белоснежка семи гомам...
Автор: ne_viens
Дата сообщения: 27.06.2013 20:46
>AZJIO Ну это как смотреть- наличие файла просто так не проверяют. Скорее всего потом что-то с ним делать будут. И тогда ещё вопрос будет, что короче,

int param1 = GetPrivateProfileInt("Section1", "param1", -1, "C:\\Windows\\users.ini");

, которая сразу и считывает параметр с ini файла,
или сишарповская проверка на наличие, открытие стрима, считывание, преобразование txt->int ?
Кстати, тоже просто функция без кучи.
Автор: AZJIO
Дата сообщения: 27.06.2013 22:28
ne_viens
Файл может быть не ini, как тогда.

1. Вопрос: есть где нибудь комплект готовых функций, который содержит популярные функции? Хочется отталкиваться от готового, и если что допиливать. Под популярные функции подразумеваю ситуацию, когда любой человек, чтобы не писать каждый раз заново свой код, преобразует некоторые наработки в законченную функцию, чтобы потом просто вставлять модуль в программу и он работает.

2. Как вставить регулярное выражение в свой код?
Автор: hoz
Дата сообщения: 27.06.2013 22:53
Здравствуйте! Я до того писал тока на Си. Привык писать коды отдельно, всё разбивать на функции. Вот пришлось взяться за изучение С++. Читаю книгу. Там приводятся примеры использования операторов перенаправления команд.
Я так понимаю, эти операторы не языка С++, а вообще командной строки что-ли?
Автор: bomzzz
Дата сообщения: 28.06.2013 01:03
AZJIO
INCLUDE файл или DLL-ка
Автор: AZJIO
Дата сообщения: 28.06.2013 03:45
bomzzz
Что такое инклуд я в курсе. [more]Что такое инклуд я в курсе, у меня на AutoIt3 их несколько наберётся, можешь посмотреть.
Парсинг ini в виртуальный массив (скачать со страницы)
Парсинг ini-файла
конвертация чисел (нижние 5 функций)
поиск файлов
центрирование дочернего окна
переключение хранения настроек между ini и реестром (скачать со страницы)
есть ещё выборочные функции по реестру (поиск, прыжок, автозагрузка), преобразованию цветового пространства и т.д.

Всё ещё есть желание удивить меня инклудом? Тогда мы идём к вам. Для тех кто привык в песочнице играться с двумя числами, такой ответ вероятно бы устроил, где то есть инклуд просто используй (и тихо возвращаемся в песочницу), для тех кто реально программирует приложение некая абстракция, что оно существует ничего полезного не даёт. Спроси меня, я тебе покажу как работают мои инклуды на реальных приложениях. Теперь я тебя спрошу, покажи мне например инклуд центрирование дочернего окна... то что оно должно якобы быть я не сомневаюсь, у нас же есть фотошопы и офисы. Любое приложение просто не может жить без обычной проверки существования файла, без проверки, является ли объект файлом, без поддержки мультиязычности, без сохранения координат и размеров при закрытии окна.[/more]
Автор: bomzzz
Дата сообщения: 28.06.2013 07:12
окна собираются программно, по сути тоже самое. никто тебя удивлять не собирается, стандартные способы добавлять шаблоны в код. библиотек своих наделай.
Автор: AZJIO
Дата сообщения: 28.06.2013 11:18
bomzzz
Я не хочу возвращатся к изобретению колеса.


Цитата:
библиотек своих наделай.

Знаешь сколько времени делается стоющая библиотека? Сначала пишется просто в коде, потом выносится в функцию, потом выкладывается на форум для всех и на тебя выливается критика, и ты переписываешь весь код функции с нуля, потом на тебя выливается ещё поток критики и ты вылизываешь код по всем параметрам учитывая каждую деталь, каждый параметр как отдельный драгоценный камень, тестируешь всё хозяйство на WinXP,7,8 и обращаешь внимание как работает твоя функция в течении года на реальных приложениях, где на форуме по ходу отписывают хотелки и баги.
Ты хочешь чтобы я начал писать типа свой Qt? Я не готов к этому. Я ищу такого же маньяка С/С++, как я в AutoIt3, который бы мог легко ответить или направить, дать порцию кратких советов, направление, где копать. Лично я выкладываю коллекцию скриптов AutoIt3, пишу перевод справки, ищу такого же человека, с такой же позицией, цель которого не просто поговорить о том о сём или дать общий ответ, зная что толку от него всё равно нет.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.