Форум программистов, компьютерный форум CyberForum.ru

Как работают эти 2 функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графическое меню http://www.cyberforum.ru/cpp-beginners/thread283533.html
Не хочется изобретать велосипед. Не у кого нет функции меню в графическом режиме Си ? тоесть стрелочками выбираем пункт, энтером подтверждаем
C++ шаблон функции, классы. доброго времени суток, форумчане, прошу вашей Вашей помощи в решение данной задачи т.к. из-за болезни провтыкал данный раздел, а сам никак не раздуплюсь в этой теме. задание звучит так : 1)Написать программу для тестирования скорости работы шаблонных функций по сравнению с функциями, где типы заданы жестко. 2)Создать шаблонный класс, содержащий шаблонную функцию, заданную выше. Пронаследовать... http://www.cyberforum.ru/cpp-beginners/thread283529.html
C++ Нужно вывести всех людей, имя которых начинаеться на букву "Л"
Нужно вывести всех людей, имя которых начинаеться на букву "Л". Также если кто-то знает как изменить, что бы работамо с struct employee {char name;... на struct employee { char *name; #include "stdafx.h" #include <iostream> #include "cmath" #include <stdlib.h> using namespace std; struct employee { char name;
подскажите формулу кубического спайна C++
подскажите формулу кубического спайна при циклических гранических условиях
C++ Описание функции через рекурсию http://www.cyberforum.ru/cpp-beginners/thread283504.html
Описать логическую функцию ПОТОМОК(А,В), проверяющую, является ли человек с именем В потомком (ребенком, внуком, правнуком) человека с именем А. Рекурсивный спуск и подъем.
C++ Определить: а) Есть ли в нем цифра 3; б) Есть ли цифры 2 и 5 Всем привет! Помогите сделать программку в с++, условие: Дано натуральное число. Определить: а) Есть ли в нем цифра 3; б) Есть ли цифры 2 и 5. Ну программа вроде с циклами должна быть небольшая и число наверно должно быть в виде текста а не цифр, т.е. char или как там, только я почти не шарю в этом. И ваще это должна быть одна прога или две?? Заранее спасибо! подробнее

Показать сообщение отдельно
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.04.2011, 14:40     Как работают эти 2 функции
Цитата Сообщение от .Malek. Посмотреть сообщение
зачем например создавать 2 массива
Да, мне тоже непонятно, вообще мозгодробильный алгоритм.

Цитата Сообщение от .Malek. Посмотреть сообщение
string[0]='\0' ставить в первый индекс в 0.
Строки в си завершаются нулевым символом, в данном случае эта строка требуется для корректной работы функции strcat, которая присоединяет строку заданную вторым параметром в конец строки заданной первым параметром. А конец строки эта функции находит как раз по нулевому символу.

Цитата Сообщение от .Malek. Посмотреть сообщение
C
1
2
3
4
5
while(! feof(file) && strcmp(load_string, "\n")!=0) // schitivaem kolichestvo mashin v faile
 {
 fgets( load_string, 2 , file );
 strcat(string, load_string);
 }
Данная конструкция считывает один символ из файла в load_string и добавляет его в конец string. Считывание происходит пока не дойдем до конца файла или пока не считаем символ перевода строки.

Цитата Сообщение от .Malek. Посмотреть сообщение
C
1
2
3
N=atoi(string);
 delete[] AutosArray;
 AutosArray=new Auto[N];
Считанную строку преобразуем в число N. И создаем массив структур размером N.

Цитата Сообщение от .Malek. Посмотреть сообщение
C
1
2
3
4
5
6
7
8
for(int k=0; (char)string[j]!=','; k++, j++)
 {
 temp[k]=string[j];
 temp[k+1]='\0';
 }
 strcpy(AutosArray[i].Mark, temp);
 temp[0]='\0';
 j++;
Сдесь копируем в temp часть string до запятой, потом temp записываем в элемент Mark структуры и далее повторяется для всех элементов структуры (т.е. код с 73 по 126 строку разбивает считанную строку из файла на подстроки разделенные запятой, записывая каждую подстроку в соответствующий элемент структуры). И все это повторяется N раз для всего массива структур.



Цитата Сообщение от .Malek. Посмотреть сообщение
C
1
2
3
4
5
6
Auto* NowArray=new Auto[N];
 int NowN=N; // save N
 for(int i=0; i<NowN; i++)
 {
 NowArray[i]=AutosArray[i]; // save AutosArray
 }
Создаем временный массив и сохраняем в него текущие данные.

Цитата Сообщение от .Malek. Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
LoadFromFile(); // now N is loaded from file and AutosArray loaded from file
 Auto* ResultArray=new Auto[NowN+N]; // result - ob'edinenie dannih iz faila i tekushih dannih
 for(i=0; i<N; i++)
 {
 ResultArray[i]=AutosArray[i];
 }
 for(i=N; i<N+NowN; i++)
 {
 ResultArray[i]=NowArray[i-N];
 }
Считываем данные из файла и во второй временные массив записываем сначала данные из файла, потом текущие.

Цитата Сообщение от .Malek. Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for(i=0; i<N; i++)
 {
 strcat(string, AutosArray[i].Mark);
 strcat(string, ",");
 strcat(string, AutosArray[i].Color);
 strcat(string, ",");
 strcat(string, AutosArray[i].Serial);
 strcat(string, ",");
 strcat(string, AutosArray[i].RegNum);
 strcat(string, ",");
 char temp[255];
 strcat(string, itoa(AutosArray[i].Year, temp, 10));
 strcat(string, ",");
 strcat(string, itoa(AutosArray[i].Price, temp, 10));
 strcat(string, ",");
 strcat(string, AutosArray[i].Owner);
strcat(string, "\n");
 fputs(string, file);
 string[0]='\0';
 }
Из элементов структуры создаем строку, элементы отделяются запятой, полученную строку записываем в файл. Так для всего массива.
 
Текущее время: 05:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru