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

Считать из файла до определенного символа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значения элементов последовательности. http://www.cyberforum.ru/cpp-beginners/thread415457.html
У меня вот такая замудрёная задача!!!! 7. Вычислить значения элементов последовательности z/3, (z-1)/4, (z-2)/5, (z-3)/6, … . Отпечатать каждое третье значение. Вычисления закончить, когда очередной элемент будет отличаться от предыдущего на величину, не превышающую заданную величину d. Сначала написал по своему: #include <iostream >...
C++ Сортировка данных по алгоритму Задание: Написать программу сортировки данных по алгоритму прямого слияния на трех лентах; Реализовать заданный алгоритм сортировки на языке С++ в виде void-функции. Вроде более менее правильно написал, вначале правильно сортирует, но потом - бред получается, не могу понять где ошибка помогите плиз. #include<iostream> #include<fstream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread415443.html
Перевод числа из десятичной в шестнадцатеричную систему счисления C++
Здраавствуйте, помогите найти ошибку в этом коде. Непонимаю почему при переводе таких чисел как 16,32,64,128 и тд не дописываются нули. #include <iostream> using namespace std; void main () { unsigned int tmp=0, mask = 0xF0000000; cout<<"Enter the number"<<endl;
C++ Даны площади нескольких кругов
Помогите сделать программу! Даны площади нескольких кругов. Найти радиус самого маленького из них! Заранее спасибо!
C++ Программирование цикла с переадресацией http://www.cyberforum.ru/cpp-beginners/thread415408.html
Помогите решить задачку. Программирование цикла с переадресацией, нужно найти номер максимального числа. Работали через прогу Comp Model. есть десять чисел, сравнение начинается с 40-ой ячейки. Не лезьте со своими задачами в чужие темы, создавайте новую!
C++ Библиотека потокового ввода/вывода А верно ли, что данная библиотека является вещью абсолютно бесполезной для Windows-программирования и в настояящее время используется исключительно для учебных целей? подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
23.12.2011, 19:00     Считать из файла до определенного символа
go, грубо говоря, сущесвует две версии new (не считая placement и не различая single-object и array-object формы).
C++
1
2
void* operator new(std::size_t size);
void* operator new(std::size_t size, const std::nothrow_t&) noexcept;
Первая в случае ошибки бросает исключение bad_alloc. Если исключение не отлавливать, то оно пойдет вверх по иерархии вызовов. В конце концов программа будет тупо терминирована.
Вторая же возвращает null pointer при ошибке выделения памяти. Если так хочется проверить возвращаемое значение, то надо использовать именно ее.

Вот примерчик. Я переопределил оператор new, чтобы имитировать ошибки выделения памяти.
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
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <new>
 
void *operator new(std::size_t size) throw (std::bad_alloc)
{
        throw std::bad_alloc();
}
 
void *operator new(std::size_t size, const std::nothrow_t &nothrow_constant) throw()
{
        return NULL;
}
 
void foo()
{
        int *ptr = NULL;
 
        if (!(ptr = new int))
                std::cerr << "foo\n";
}
 
void bar()
{
        int *ptr = NULL;
 
        if (!(ptr = new (std::nothrow) int))
                std::cerr << "bar\n";
}
 
int main()
{
        bar();
        foo();
}
Лично у меня результат такой:
Код
bar
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Так что смысла таким образом обрабатывать выполнение обычного new никакого нет. Другое дело, если бы это был nothrow new.
 
Текущее время: 12:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru