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

Запись и чтение файлов на диск и с диска - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сконструировать класс http://www.cyberforum.ru/cpp-beginners/thread346844.html
Добрый день. Мне надо сконструировать следующий класс: class LogicElement { public: // constructors / destructor LogicElement(const char *ElementType, int nIpiNmb ); LogicElement(const LogicElement &); ~LogicElement(); //methods void SetInputs(const bool *inputs);
C++ Проблема наследования от шаблонного класса. Привет всем! У меня есть шаблонный класс, и наследуемый от него шаблонный класс. Базовый: #include "Lgraph.h" #include "Mgraph.h" template <class Edge> http://www.cyberforum.ru/cpp-beginners/thread346786.html
Число прописью, от 1 до 99 на русском C++
Программа работает, но не совсем правильно, отлично выводит числа от 1 до 20 потом при вводе 21 - выводит один один; 47 - выводит семь семь; 83 - выводит три три. Помогите исправить ошибку. #include <iostream> #include <windows.h> using namespace std; char*Rus(const char* text);
C++ Как правильно записать?
y=sin|x|/0,1+9,4sin(3x-2,5) Добавлено через 13 минут матем. формулу
C++ Подскажите http://www.cyberforum.ru/cpp-beginners/thread346735.html
Вот начал изучать с++ с 0. Столкнулся с проблемой уже в самом начале...подскажите плиз что не так... #include <iostream.h> class DataClass { private : int PrivateDataMember; public :
C++ "Длинная" арифметика в рекурсии Как реализовать длинную арифметику в рекурсии типа N! = 1 * 2 * 3 * … * (N-1) * N. Да и вообще, не откажусь от информации в общем о длинной арифметике. подробнее

Показать сообщение отдельно
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.09.2011, 03:40     Запись и чтение файлов на диск и с диска
Цитата Сообщение от Vladimir.
C
1
assert( f = fopen(fname,"a+") );
макрос отключает assert'ы
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <assert.h>
 
int main(void)
{
    assert(printf("hello\n") > 0);
    assert(0);
    return 0;
}
Код
[guest@localhost tests]$ .ansi t.c -o t
[guest@localhost tests]$ ./t
hello
t: t.c:8: main: Assertion `0' failed.
Аварийный останов (core dumped)
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#define NDEBUG
#include <assert.h>
 
int main(void)
{
    assert(printf("hello\n") > 0);
    assert(0);
    return 0;
}
Код
[guest@localhost tests]$ .ansi t.c -o t
[guest@localhost tests]$ ./t
[guest@localhost tests]$


Цитата Сообщение от Ватадот
Мы это непроходили,немогли бы вы обьяснить для чего это?
это для того, чтобы не заморачиваться с ошибками, когда те возникают

выше показано, что нужно все операторы вывести из assert()

C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#define NDEBUG
#include <assert.h>
 
int main(void)
{
    int retval;
    
    retval = printf("hello\n");
    assert(retval > 0 && "printf");
    assert(0);
    return 0;
}
Код
[guest@localhost tests]$ .ansi t.c -o t
[guest@localhost tests]$ ./t
hello
[guest@localhost tests]$
всё работает
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <assert.h>
 
int main(void)
{
    int retval;
    
    retval = printf("hello\n");
    assert(retval > 0 && "printf");
    assert(0);
    return 0;
}
Код
[guest@localhost tests]$ .ansi t.c -o t
[guest@localhost tests]$ ./t
hello
t: t.c:11: main: Assertion `0' failed.
Аварийный останов (core dumped)
[guest@localhost tests]$


ситуации ошибок можно обрабатывать по-разному
чтобы программу не сковывать каким-нибудь одним способом, делаются assert'ы

иначе ты можешь написать консольную программу, в которой ошибки выводятся на консоль, а потом, чтобы её переделать в оконную, придётся эти консольные ошибки переделывать, вместо того, чтобы взять заготовку с assert'ами, отключить их макросом и дописать вывод ошибок в окнах
 
Текущее время: 15:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru