[mdk-re] C/C++ question
Mikhail Zabaluev
=?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Пт Май 4 09:50:01 MSD 2001
Hello Serge,
On Tue, May 01, 2001 at 12:59:34AM +0400, Serge Skorokhodov wrote:
>
> On Mon, 30 Apr 2001 21:16:55 +0400
> Michael Ivanov <ivans на isle.spb.ru> wrote:
>
> > On 30 April 2001 14:11, you wrote:
> > >
> > В одной программе на "двухкрестовом" столкнулся со строчкой,
> > > наподобие следующего отрывка:
> > >
> > > char buf[BUFSIZ];
> > > // ...
> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> > > ^^^^^^^^^^^^^^^^
> >
> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> > отображает именно так.
>
> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
> языков веду:)
>
> Но, если честно, то мне еще непонятнее: В nedit это отображается
> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
> просмотре, и при редактировании просто ''. Как выяснить, какой же
> символ в программе. Я всегда думал, что исходный текст есть
> исходный текст, ascii есть ascii. А тут и я, и компилятор в
> затруднении, и неизвестно, какая тулза из богатого инструментария
> *nix может помочь:(
xxd или hexdump :)
\0x0d вообще чужд Unix. Но редакторы, особенно матерые, vi или emacs,
такие символы стараются отображать и редактировать. По крайней мере их
можно удалять :) А насчет исходного текста - я не уверен, что этот
символ вообще разрешено употреблять как он есть в стандарте C.
Пользуйтесь '\r', '\0xd' или '\015'.
--
Stay tuned,
MhZ JID: mookid на jabber.org
___________
F: When into a room I plunge, I
Sometimes find some VIOLET FUNGI.
Then I linger, darkly brooding
On the poison they're exuding.
-- The Roguelet's ABC
Подробная информация о списке рассылки community