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

Где косяк в коде? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Иттераторы http://www.cyberforum.ru/cpp-beginners/thread337158.html
Я в принципе понимаю, что такое иттератор, но нужно чёткое определение. И как формулировать, что такое цикл с иттератором и чем он отличается от цикла со счётчиком? И как точно пишется слово "иттератор" по-русски и по-английски?
C++ Где можно раздобыть иходники каково-нибуть движка? Недавно посетила идея присоиденения не хватающих составляющих к движку OGRE , но я даже не знаю с чего начать думаю разобраться в исходниках каково-нибудь движка и там уже по примеру.ПЛИЗ ПОДСКАЖИТЕ ГДЕ ВЗЯТЬ ИХОДХОДНИКИ любова движка(хоть DOOM) З.Ы.в гугл не отпровлять я только из него пришол) http://www.cyberforum.ru/cpp-beginners/thread337157.html
Поиск в глубину C++
Объясните плз поиск в глубину с примером. Сам много реалихаций нашел, но до конца не могу разобраться, может у кого есть примерчик хороший. В общем киньте плз пример с детальным описанием. И желательно алгоритм с массивами а не с vector-ми.
C++ <> в С++
Прошу прощения за нубский вопрос. Как в С++ выглядит логическая операция из Pascal <>?
C++ Как работает "шаг цикла" в цикле for? http://www.cyberforum.ru/cpp-beginners/thread337049.html
Всем привет! Я в с++ новичек !! кому не сложно обьясните как работает "шаг цикла" в цикле for For(счетчик = значение; счетчик < значение; шаг цикла) я понял что это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом повторении цикла.. но прост не очень понятна запись i++... пример ..... for(i=1;i<=10;i++) { sum=sum+i;
C++ дружественные функции Всем привет!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; static char* Shapes={"prizm","parallelepiped","cube","pyramid","cone","cylinder"}; подробнее

Показать сообщение отдельно
voral
436 / 416 / 59
Регистрация: 16.03.2008
Сообщений: 2,046
29.07.2011, 15:24
Вообще не понятно .Чего в этом коде понаписано.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using namespace std;   int main() {         ifstream fin11("5.txt");
 // задаем размер исходного массива          int range = 3;
 // выделяем память под одномерный массив из 3 элементов  // типа double
         double*free = new double[range];
// задаем начальное значение индекса
         int qwer = 0;
// читаем из файла в массив, на каждой итерации увеличиваем индекс
// итерации повторять до тех пор пока.....  Я не пробовал, это реально работает?
// может нужно, что то типа eof, fail .....?
         while ( fin11 >> free[qwer])         { qwer++; }         fin11.close();           ifstream fin1("4.txt");         ofstream ofs3("3.txt");         char a;
 
// устанавливаем индекс в 0
         int i = 0;
 
// читаем файл до конца
// но индекс не наращивается т.е. всегда free[0]
// имя массива ужасное
         while(!fin1.eof())         { // следующие две строки и условие цикла навевают мысль, 
// что что то не так организовано 
               a = fin1.get();                 if ( fin1.eof() ) break;
 
// если считанный символ перевод строки то записываем первый элемент массива free 
// и перевод строки иначе считанный символ
                 if ( a == '\n' ){ ofs3 << free[i] << endl;} else                 { ofs3 << a; }         }         fin1.close();         ofs3.close(); delete[] free;
}
Добавлено через 3 минуты
Черт в коде переносы строки пропали, а редактировать не дает

Добавлено через 4 минуты
Т.е. главный вывод:
Вы используете только первый элемент массива free, при этом памяти выделяете только под три элемента, а считываете (по крайней мере если я понял правильно ваш код и задумку) все числа из файла, т.е. вылетаете за пределы выделенной памяти.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru