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

Простенький класс работы с комплексными числами. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не печатает русский текст http://www.cyberforum.ru/cpp-beginners/thread358307.html
Здравствуйте, у меня возникла проблема, я не могу печать русский текст.Вместо текста, непонятные ероглифы. Использую я C++ CodeBlocks. Компилятор: MinGW(gcc) #include <iostream> using namespace std; int main() { cout << "Привет" << endl; }
C++ Помогите развязать задачу очень нужно на С++ Задан массив чисел. Если есть элемент равен а, то результат равен сумме элементов, которые идут после а, в противном случае результатом будет число 10 http://www.cyberforum.ru/cpp-beginners/thread358301.html
в данной целочисленной матрице 6 на 6 указать индексы всех элементовс наибольшими значениями. C++
1. в данной целочисленной матрице 6 на 6 указать индексы всех элементовс наибольшими значениями. 2. в данной действительной квадратной матрице 5 на 5 найти сумму элементов строки в которой располоожен элемент с положительным значением . предполагается что такой элемент единственный.
найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц C++
Нужно найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. В чем ошибка ? #include <iostream> #include <stdio.h> using namespace std; int main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
C++ Помогите понять формулировку http://www.cyberforum.ru/cpp-beginners/thread358250.html
Объясните пожалуйста суть задания. С языком С не знаком. Только не не большие знания С++ Строки данного класса строятся по правилам записи идентификаторов в языке С и могут включать в себя только те символы, которые могут входить в состав С-идентификаторов. Если исходные данные противоречат правилам записи идентификатора, то создается пустая СТРОКА_ИДЕНТИФИКАТОР
C++ Программно нажать пробел в активном окне Уважаемы форумчане, подскажите пожалуйста как создать бесконечный цикл нажатия пробела в активном окне. ЗЫ: Гуглил - не нашел ЗЫ2: Строго не судить - C++ учу второй день Заранее спасибо! подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
30.09.2011, 08:03     Простенький класс работы с комплексными числами.
Цитата Сообщение от Slimmy Посмотреть сообщение
Почему Вы спросили на счет проверки включения <iostream> и "stdafx"
то, что ты сделал:
  1. не нужно
    C тем, что guard'ы нужны для предотвращения повторного включения заголовочных файлов, никто не спорит. Обычно это делают так:
    C
    1
    2
    3
    4
    5
    6
    
    #ifndef ИМЯ_ХЕДЕРА_H
    #define ИМЯ_ХЕДЕРА_H
     
    // ... код хедера
     
    #endif
    И теперь сколько бы мы раз не указывали компилятору (с помощью директивы #include) подключить наш заголовочный файл, он будет подключен лишь один раз.
    Но зачем делать то же самое в своем хедере, к примеру, для iostream? Создатели твоего компилятора уже позаботились о том, чтобы iostream содержал подобные include guard'ы.
  2. скорее всего не будет работать так, как ты задумывал
    Забудем на минутку про предыдущий пункт и представим, что проверка включений стандартных заголовочных файлов в твоих заголовочных файлах является оправданным.
    Но с чего ты решил, что в iostream твоего компилятора (да и вообще, любого произвольного компилятора) защита от повторных включений осуществлена посредством определения именно символа IOSTREAM? К примеру, у меня (gcc) она осуществляется с помощью определения символа _GLIBCXX_IOSTREAM:
    C++
    1
    2
    3
    4
    5
    6
    
    #ifndef _GLIBCXX_IOSTREAM
    #define _GLIBCXX_IOSTREAM 1
     
    //...
     
    #endif
    И даже если перед включением твоего файла будет подключен iostream, то твой файл все равно никак не сможет об этом узнать.
  3. потенциально вредно
    Представим, что ты все же угадал с именем определяемого символа. Тогда рассмотрим следующую ситуацию. Имеем заголовочный файл bad_header_guard.hh:
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #ifndef BAD_HEADER_GUARD_HH
    #define BAD_HEADER_GUARD_HH
     
    // А вот так делать очень, очень плохо!
    #ifndef _GLIBCXX_IOSTREAM
    #define _GLIBCXX_IOSTREAM
    #endif
     
    #endif
    И файл main.cc:
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    
    #include "bad_header_guard.hh"
    #include <iostream>
     
    int main()
    {
        std::cout << "It seem's like there's no iostream around" << std::endl;
        return 0;
    }
    Что же произойдет, если ты попытаешься собрать эту программу? Обрабатывая main.cc, препоцессор наткнется на директиву #include "bad_header_guard.hh" на первой строке. Он обработает этот файл bad_header_guard.hh, определит символы BAD_HEADER_GUARD_HH и _GLIBCXX_IOSTREAM, и вставит его содержимое в main.cc.
    Дальше, на второй строке main.cc, ему придется обрабатывать iostream. Но, т.к. символ _GLIBCXX_IOSTREAM уже определена раньше, то содержимое iostream не будет вставлено в main.cc, т.е. препроцессор полностью его проигнорирует! И в итого мы получаем ошибку компиляции:
    Код
    -*- mode: compilation; default-directory: "/home/nameless/samples/cpp/" -*-
    Compilation started at Fri Sep 30 14:56:51
    
    make -j8
    g++ -c -Wall -g -std=c++0x main.cc
    main.cc: В функции «int main()»:
    main.cc:6:5: ошибка: «cout» не является элементом «std»
    main.cc:6:65: ошибка: «endl» не является элементом «std»
    make: *** [main.o] Ошибка 1
    
    Compilation exited abnormally with code 2 at Fri Sep 30 14:56:51
 
Текущее время: 12:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru