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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
#1

Очередное WTF ))) - C++

21.07.2011, 20:40. Просмотров 958. Ответов 15
Метки нет (Все метки)

Вот до чего меня жизнь довела:
имеем файл file.txt который содержит просто строку "Hello,World!" (с ковычками). Далее пишем такой код:
C++
1
2
3
4
5
6
7
8
9
10
#include<iostream>
 
char hello[100] = {
#include "file.txt"
};
 
int main(){
      std::cout<<hello<<std::endl;
      return 0;
}
И оно работает!!! Очевидно, что выводится строка, которую содержит файл.
Я очень удивился, когда это все скомпилировалось, но когда удачно отработало, то вообще. Потом посидел - покурил и понял, что удивляться тут не чему, все вполне логично.

Думаю многим интересно будет на это посмотреть, тем более лето - на форуме глухо ))
22
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2011, 20:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очередное WTF ))) (C++):

Очередное, из теста - C++
Текст вопроса При вызове multiply (X1=1, Y1=2) по форме описания: int multiply (X, Y) { X +=Y++ return ++X * Y++ } функция...

Расширение языка С. WTF? - C++
Hi, All! Решил на выходных заняться учебой, сессия скоро. На эти выходные наметил себе план работ - скачать задания:) Вот сижу читаю...

ООП + полиморфизм = wtf? - C++
Есть: Класс A - отец Класс Б - дочерний Класс Ц - дочерный, наследуеться от А(сестра Б) Есть массив типа А, с названием Mass. ...

Спецификация файла. WTF? - C++
Здравствуйте. Что такое спецификация файла (в контексте данной задачи)? В Google ничего понятного не нашел. Заранее спасибо.

Очередное деструктивное: при вызове деструктора все падает - C++
Доброго времени суток! Есть некий класс H, с конструктором, деструктором: H(int size, int top){ this-&gt;size = size; this-&gt;top =...

map assigment of read only data member или WTF? - C++
задача:из acm.timus.ru 1100. Таблица результатов Ограничение времени: 1.0 секунды Ограничение памяти: 16 МБ Старое программное...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
21.07.2011, 20:52 #2
Kastaneda, какой компилятор? У меня на OpenWatcom такое не прокатывает...
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
21.07.2011, 20:55  [ТС] #3
MSVS 2010

Добавлено через 1 минуту
В MinGW тоже работает, только что проверил.
0
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
21.07.2011, 20:58 #4
Инициализация массива файлом. Во как !
0
NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
21.07.2011, 21:00 #5
Dev-C++ - работает!!!
"Hello,World!" (с ковычками)
Без кавычек, тож)
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
21.07.2011, 21:04  [ТС] #6
Цитата Сообщение от NIch Посмотреть сообщение
Dev-C++ - работает!!!
Я ж написал:
В MinGW тоже работает, только что проверил.



Цитата Сообщение от An1ka
Инициализация массива файлом. Во как !
Ага, вот теперь думаю, как бы сделать так, чтобы наличие кавычек в файле было необязательным, тогда вообще круто будет)

Добавлено через 43 секунды
Цитата Сообщение от NIch Посмотреть сообщение
Без кавычек, тож)
В студии без кавычек не хочет, а вобще странно, ща проверю.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
21.07.2011, 21:05 #7
Опп.. Соврал. С кавычками OpenWatcom понимает.
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
21.07.2011, 21:07  [ТС] #8
Не может он без кавычек работать:
Код
//MinGW
file.txt|1|error: 'Hello' was not declared in this scope|
file.txt|1|error: 'World' was not declared in this scope|
file.txt|1|error: expected '}' before '!' token|
file.txt|1|error: expected ',' or ';' before '!' token|
error: expected declaration before '}' token|
||=== Build finished: 5 errors, 0 warnings ===|
В DEV_C++ используется компилятор MinGW, только возможно более старый.
0
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
21.07.2011, 21:20 #9
забавно)
0
NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
21.07.2011, 21:22 #10
Да, все верно.
Пробовал изменять запись в файле все равно выводит Hello world!.
Можно удалять файл, программа не меняет свою работу. Она включает его в процессе компиляции.
И без кавычек компилироваться не хочет!
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
21.07.2011, 21:24  [ТС] #11
Цитата Сообщение от NIch Посмотреть сообщение
Она включает его в процессе компиляции.
Ну так в этом и есть суть препроцессорных директив
1
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
21.07.2011, 23:30 #12
Она включает его еще ДО компеляции.
Да, неплохо так )
0
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
22.07.2011, 00:01 #13
жаль перевод строки и прочее не воспринимает без управляющих символов
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
22.07.2011, 01:30 #14
как вам такая штука?
включаем загаловочник, открывая все закрытые поля
C++
1
2
3
4
5
6
7
8
#define private public
 
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
 
#undef private
0
prZzZ
Программист
112 / 92 / 5
Регистрация: 22.03.2011
Сообщений: 235
22.07.2011, 02:08 #15
Чему удивляться то? - ПРЕПРОЦЕССОР - извращениям нет конца...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2011, 02:08
Привет! Вот еще темы с ответами:

Определить минимальное значение n>0, для которого очередное слагаемое по модулю не превышает eps - C++
Формулировка задания: &quot;Определить минимальное значение n&gt;0, для которого очередное слагаемое по модулю не превышает eps&gt;0 при нахождении...

WTF не работает простой код на Visual studio 2008(баг?) - C++
Взял код из википедии. ...

Очередное "Сдвинуть циклически на M элементов вправо" - C++
Нашёл примеры на форуме, сделал вроде как надо а вы бивает чтот оне понятное! # include &lt;iostream.h&gt; # include &lt;stdlib.h&gt; #...

Очередное в DataGrid - C#
В датагрид вставлен DatePicker private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.07.2011, 02:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru