Re[5]: Использование printf() и scanf()
От: ansi  
Дата: 13.06.05 13:46
Оценка:
Здравствуйте, ansi, Вы писали:

A>Здравствуйте, <Аноним>, Вы писали:


А>>Тогда вопрос. Если в буфере, после ввода 'y' (спецификатор "%c") остается символ '\0' — не понимаю, как тогда вообще считать только один символ?


A>Он там не останется. Сивол '\0' записывается в конец строки, но не является частью буфера. Ты же спецификатором "%[NnYy]" указывал, что тебе надо считать именно строку и давал указатель char *, который вмещал в себя один символ, но scanf'у то пофиг, что ты не позаботился о выделении достаточного количества памяти. Если ты вызовешь с "%c", то scanf запишет ровно один символ.


Че-то я намутил... Короче, строка — последовательность символов, которая заканчивается '\0'. В конец любой строки обязан быть записан этот символ, что scanf и делает. Строка из одного символа == {'y', '\0'}. Просто символ, он и в Африке один символ и ничем не "заканчивается".
new RSDN@Home(1.1.4, 303) << new Message(); std::head::ear << "2 Unlimited — Nothing Like The Rain";
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.