Форум: "Прочее";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
ВнизЧто в Си означает cout<<" n"? Найти похожие ветки
← →
Германн © (2009-12-07 00:27) [0]Перевод строки? Или что-то другое?
Никогда не работал сcin, cout
:(
← →
wicked © (2009-12-07 00:32) [1]перевод строки
← →
wicked © (2009-12-07 00:34) [2]ну и не в си, а в си++
← →
Игорь Шевченко © (2009-12-07 00:34) [3]то же, что и writeln в паскале
то же, что и puts(""") и printf("\n"); в С
← →
KilkennyCat © (2009-12-07 00:41) [4]да, я вот, седня кучу их поудалял, мешали-с...
← →
Inovet © (2009-12-07 00:42) [5]> [0] Германн © (07.12.09 00:27)
> Никогда не работал с cin, cout
Это вообще в любых строках и отдельно символ можно записать так, со знака "\" начинаются всякие комбинации в т.ч и перевод строки. а можно такcout << std::endl;
это ещё буфер сбросит.
← →
Германн © (2009-12-07 00:42) [6]
> ну и не в си, а в си++
Как раз в си.
> Игорь Шевченко © (07.12.09 00:34) [3]
Значит правильно угадал. Или где-то в подсознании это сидело. :)
← →
wicked © (2009-12-07 00:45) [7]> Германн © (07.12.09 00:42) [6]
> > ну и не в си, а в си++
>
> Как раз в си.
и шё, оно таки скомпилировалось?
← →
Игорь Шевченко © (2009-12-07 00:47) [8]
> Как раз в си.
Не обманывай
← →
Inovet © (2009-12-07 00:47) [9]> [6] Германн © (07.12.09 00:42)
> Как раз в си.
Ну откуда в Си взялся экземпляр класса ostream cout?
← →
KilkennyCat © (2009-12-07 00:52) [10]мож у него другой си... их ж мильен.
← →
wicked © (2009-12-07 01:04) [11]> Inovet © (07.12.09 00:47) [9]
>
> > [6] Германн © (07.12.09 00:42)
> > Как раз в си.
>
> Ну откуда в Си взялся экземпляр класса ostream cout?#include <stdio.h>
int main(int argc, char * argv[])
{
int cin, cout = 123;
cin = cout << "\n";
printf("cin = %d, cout = %d\n", cin, cout);
return 0;
}
работает, только в одинарных кавычках ;)
← →
Inovet © (2009-12-07 01:16) [12]> [11] wicked © (07.12.09 01:04)
> работает, только в одинарных кавычках ;)
Ну да, ну да.:)
← →
Германн © (2009-12-07 01:27) [13]
> Игорь Шевченко © (07.12.09 00:47) [8]
>
>
> > Как раз в си.
>
>
> Не обманывай
>
Если я и обманываю, то только по недостаточной образованности по си.
> KilkennyCat © (07.12.09 00:52) [10]
>
> мож у него другой си... их ж мильен.
>
Мож.
Эта программка написана в Turbo C. Если автор ничего не перепутал. Что есть Turbo C я не знаю. Знаю только, что она работала в DOS"е.
← →
Inovet © (2009-12-07 01:30) [14]> [13] Германн © (07.12.09 01:27)
> Что есть Turbo C я не знаю.
Турбо Паскаль знаешь? Вот та же среда, так ведь ещё и Турбо Си++ был.
← →
Германн © (2009-12-07 01:34) [15]
> Турбо Паскаль знаешь?
Обижаешь. Я его знаю лучше всех других "языков".
← →
Inovet © (2009-12-07 01:36) [16]> [14] Inovet © (07.12.09 01:30)
> Турбо Си++
Тогда std ещё небыло, просто endl был.:) Это кcout << std::endl;
← →
Inovet © (2009-12-07 01:39) [17]> [15] Германн © (07.12.09 01:34)
>
> > Турбо Паскаль знаешь?
>
> Обижаешь. Я его знаю лучше всех других "языков".
Это был риторический вопрос, утверждение т.е..:) А что за программа-то такая, переделывеешь под Вин?
← →
Германн © (2009-12-07 01:45) [18]Спасибо всем ответившим!
Моей целью было
> да, я вот, седня кучу их поудалял, мешали-с...
Стандартов си и си++ я не знаю, да и знать не хочу. Просто не нужно по жизни и работе. Что почти одно и то же.
Это как в сабже о книгах по алгоритмам.
← →
Германн © (2009-12-07 01:51) [19]
> Inovet © (07.12.09 01:39) [17]
>
> > [15] Германн © (07.12.09 01:34)
> >
> > > Турбо Паскаль знаешь?
> >
> > Обижаешь. Я его знаю лучше всех других "языков".
>
> Это был риторический вопрос, утверждение т.е..:) А что за
> программа-то такая, переделывеешь под Вин?
>
Ну под Вин я программы на си переделывать не собирался, не собираюсь и не буду собираться. Программы на си я иногда, ну очень иногда, пишу (используя примеры) для микропроцессоров. Просто нашел реализацию некоего алгоритма на си в книжке, которая у меня "завалялась".
Угадал, но решил перестраховаться.
← →
Inovet © (2009-12-07 01:57) [20]> [18] Германн © (07.12.09 01:45)
> Моей целью было
> > да, я вот, седня кучу их поудалял, мешали-с...
Если они только для перевода строки, а не для чего-то другого применяются в этой программе. Символ "\n" то же, что и "\0x0a", по-паскалевски $0A.
← →
KilkennyCat © (2009-12-07 02:03) [21]я из принтов в пхп удалял. переделываю чужое.
← →
Германн © (2009-12-07 02:09) [22]
> Если они только для перевода строки, а не для чего-то другого
> применяются в этой программе
Обсуждение не показало "чего-то другого".
← →
Германн © (2009-12-07 02:17) [23]
> Inovet © (07.12.09 01:57) [20]
>
> > [18] Германн © (07.12.09 01:45)
> > Моей целью было
> > > да, я вот, седня кучу их поудалял, мешали-с...
>
> Если они только для перевода строки, а не для чего-то другого
> применяются в этой программе. Символ "\n" то же, что и "\0x0a",
> по-паскалевски $0A.
>
Хм.
А где $0D?
← →
GDI+ (2009-12-07 02:20) [24]
> Германн © (07.12.09 02:17) [23]
>
> Хм.
> А где $0D?
В Unix нет 0x0d. А стандарт C/C++ знаешь кто принимает?
← →
Ляпа (2009-12-07 02:21) [25]
> Хм.
> А где $0D?
где-где... в винде :Р
← →
KilkennyCat © (2009-12-07 02:22) [26]
> Ляпа (07.12.09 02:21) [25]
дааа :))
← →
Inovet © (2009-12-07 02:27) [27]> А где $0D?
Вот он"\r"
Но для консоли достаточно"\n"
а возврат каретки она добавит, так вроде.
Там выше в постах двойные кавычке употреблены не в Си смысле.
← →
Германн © (2009-12-08 02:16) [28]
> Inovet © (07.12.09 02:27) [27]
>
> > А где $0D?
>
> Вот он
> "\r"
> Но для консоли достаточно
> "\n"
> а возврат каретки она добавит, так вроде.
> Там выше в постах двойные кавычке употреблены не в Си смысле.
>
>
Значит в смысле Turbo C?
← →
Германн © (2009-12-08 02:29) [29]Еще два маленьких вопроса по С и Turbo C:
1. В "настоящем" С для доступа к элементу структуры заданной через указатель действительно используется "->"?
2. В некоей книжке по Turbo C прочитал:
Если бы язык не разрешал обычные арифметические операции с указателями, то для решения подобной задачи либо пришлось бы отказаться от динамических массивов, либо существенно усложнить логику построения программы.
Имхо, арифметические операции с указателями ничуть не лучше арифметических операций с номером элемента массива!
P.S. В той книжке под динамическим массивом понимается массив, память под которого выделяется в рантайме, Типа GetMem в Паскале.
← →
Inovet © (2009-12-08 02:51) [30]> [28] Германн © (08.12.09 02:16)
> > Там выше в постах двойные кавычке употреблены не в Си смысле.
>
> Значит в смысле Turbo C?
В смысле знаков препинания в письменной речи.:) В Си и Си++ "a" и "a" разное означают.
> [29] Германн © (08.12.09 02:29)
> В "настоящем" С для доступа к элементу структуры заданной
> через указатель действительно используется "->"?
Дак в Си++ тоже, это сокращённая форма разыменовывания и выбора элемента
p->a и (*p).a эквивалентны.
А про массивы не понял о чём, и вообще нет в Си массивов.
← →
Inovet © (2009-12-08 02:58) [31]> [29] Германн © (08.12.09 02:29)
> Имхо, арифметические операции с указателями ничуть не лучше
> арифметических операций с номером элемента массива!
Это *(p + i) и p[i] эквивалентны, суть арифметика указателей.
← →
Германн © (2009-12-08 03:09) [32]
> Дак в Си++ тоже, это сокращённая форма разыменовывания и
> выбора элемента
> p->a и (*p).a эквивалентны.
Дык, Андрей. С++ мне не нужен (пока) и, скорее всего, совсем не нужен.
Си мне нужен (может быть будет нужен) для программирования микропроцессоров.
Вот блуждаю пока между языками Си для разных компиляторов.
> А про массивы не понял о чём, и вообще нет в Си массивов.
То что нет в Си массивов это я не понимаю. :(
int a[100] - это не массив?
← →
Inovet © (2009-12-08 03:27) [33]> [32] Германн © (08.12.09 03:09)
>
> > Дак в Си++ тоже, это сокращённая форма разыменовывания и выбора элемента
> > p->a и (*p).a эквивалентны.
>
> Дык, Андрей. С++ мне не нужен (пока) и, скорее всего, совсем не нужен.
> Си мне нужен (может быть будет нужен) для программирования микропроцессоров.
> Вот блуждаю пока между языками Си для разных компиляторов.
Это везде должно быть одинаково.
> int a[100] - это не массив?
Можно и массивом назвать.
← →
GDI+ (2009-12-08 03:28) [34]
> А про массивы не понял о чём, и вообще нет в Си массивов.
это как?char a[] = new char[x];
← →
Германн © (2009-12-08 03:55) [35]
> > int a[100] - это не массив?
>
> Можно и массивом назвать.
>
Если можно назвать а массивом, то почему "арифметика указателей" лучше "арифметики индексов массивов"?
← →
Inovet © (2009-12-08 04:07) [36]> [35] Германн © (08.12.09 03:55)
> Если можно назвать а массивом, то почему "арифметика указателей"
> лучше "арифметики индексов массивов"?
Может там про оптимизацию говорилось, для микроконтроллеров должно быть актуально?
int a[100];
int *p;
int i;
for(i = 0; i < 100; ++i) a[i] = 0; // Вычисляется a + i
for(p = a + 100; p >= a; --p) *p = 0; // Не надо вычислять
← →
Inovet © (2009-12-08 04:09) [37]> [36] Inovet © (08.12.09 04:07)
> for(p = a + 100; p >= a; --p) *p = 0;
a + 100 - 1
← →
Германн © (2009-12-08 04:15) [38]
> Inovet © (08.12.09 04:07) [36]
>
> > [35] Германн © (08.12.09 03:55)
> > Если можно назвать а массивом, то почему "арифметика указателей"
> > лучше "арифметики индексов массивов"?
>
> Может там про оптимизацию говорилось, для микроконтроллеров
> должно быть актуально?
>
ХЗ про что там говорилось.
ХЗ и что ты понимаешь под "оптимизацией".
Если интересно, отправлю на почту. Завтра.
Сегодня уже спать хочу. :)
← →
Inovet © (2009-12-08 04:26) [39]> [38] Германн © (08.12.09 04:15)
> ХЗ и что ты понимаешь под "оптимизацией".
Для современных Intel без разницы, а вот для микроконтроллеров может быть лишняя опереация сложения, если компилятор там не заменит на указатель.
> Если интересно, отправлю на почту. Завтра.
Отправь.
← →
grammar-nazi (2009-12-08 20:43) [40]>GDI+ (08.12.09 03:28) [34]
>> А про массивы не понял о чём, и вообще нет в Си массивов.
>это как?
>char a[] = new char[x];
это будет "error: "new" undeclared" и "parse error before "char"". потому что в си нет не только массивов, но и оператора new.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.005 c