[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