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

Определить количество положительных элементов массива, предшествующих первому отрицательному - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано число n. Проверить число n на простоту. http://www.cyberforum.ru/cpp-beginners/thread172485.html
Помогите написать программу плизз ) Не знаю как и с чего начать... Я еще нуб в программировании )
C++ Вывод на экран ромба из звёзд! Народ! Нам задали написать программу, которая выводит ромб из звёздочек, но что-то у меня не совсем получилось! Помогите в четверг сдавать! #include "stdafx.h" #include <stdio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread172482.html
C++ Дано натуральное число n. Получить все его натуральные делители.
Помогите пожалуйста. Нужно написать программу на языке Си. Дано натуральное число n. Получить все его натуральные делители. Заранее спасибо.
C++ Украинские символы в консоли
Подскажите, как сделать, чтобы в консоли корректно отображались буквы украинского алфавита, в частности буква "і". Такие буквы, как "є" и "ї" отображаются правильно. Проблема актуальна как для...
C++ Молекулярная динамика http://www.cyberforum.ru/cpp-beginners/thread172444.html
Доброго времени суток! Получилось так, что как всегда дотянул и теперь время поджимает. Может есть у кого эта программа написанная на с++ ?
C++ Следует ли пользоваться командой system()? С помощью функции system можно легко работать с файлами и каталогами. Но возникает 3 вопроса. 1) копировать перемещать удалять файлы лучше этой командой или api или другими библиотеками?... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,775
05.10.2010, 15:33
Цитата Сообщение от yariknarik Посмотреть сообщение
компилятор может тупить, некоторые команды существующте в С неупотребляются в С++, кроме того в С нет классов, если прога маленькая, это не создает много проблем, а в больших прогах потом очень трудно найти ошибки... компилятор не всегда их показывает.
Цитата Сообщение от wertrix Посмотреть сообщение
Вы можете сказать, в чем недостатки смешивания С и С++ кода в одной программе?
Ну в общих чертах Вам ответили. Конкретнее - коль скоро С++ объектно ориентированный язык программирования, то и потоки ввода/вывода в нём представлены объектами соответствующих классов ( cin - объект класса istream, cout - ostream ), С в стиле UNIX воспринимает stdin, как файл, открытый для чтения, stdout - как файл, открытый для записи. Если смешивать оба подхода в одной программе - получится, что для одного и того же потока используются разные буферы и часть ввода/вывода может просто теряться. К тому же обработка ошибок (в том числе и ввода/вывода) в С и С++ организована по-разному. Вот к примеру програмка, читающая с консоли число, в случае ошибки ввода присваивающая числу значение по умолчанию и выводящая число обратно на консоль
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main(void){
    int number;
 
    printf("Enter some number: ");
    if ( scanf("%d", &number) != 1 ){
        fprintf(stderr, "Wrong input! Setting number to default value - 0\n");
        number = 0;
    }
 
    printf("The number is %d\n", number);
 
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(){
    int number;
 
    std::cin.exceptions(std::cin.failbit);
    std::cout << "Enter some number: ";
    try {
        std::cin >> number;
    }
    catch ( std::ios_base::failure & ){
        std::cerr << "Wrong input, setting number to default value - 0" << std::endl;
        number = 0;
    }
 
    std::cout << "The number is " << number << std::endl;
 
    return 0;
}
В таком простом примере, конечно, без разницы - и так работает, и эдак, а вот когда встанет вопрос, как бы это вывести поля класса (к примеру), прийдётся задуматься... То ли пытаться printf() перегружать , то ли переделывать вывод так, как он в С++ задуман, а переучиваться всегда сложнее...

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