Не про CodeVision-реализацию, а про
стандартный scanf
со времён K&R:
Пожалуйста, кто-нибудь, переполните мне буфер:
Код
#include <stdio.h>
#define STRINGIFY_(a) #a
#define STRINGIFY(a) STRINGIFY_(a)
#define STR_SIZE 4
char str[STR_SIZE+1];
int main()
{
do {
if( !scanf("%" STRINGIFY(STR_SIZE) "s", str) ) break;
str[STR_SIZE] = 0;
puts(str);
} while(str[0] != 'Q');
}
Цитата
real@REALPC:~/temp$ ./ssc
1234567890qwertyuiop[]asdfghjkl
1234
5678
90qw
erty
uiop
[]as
dfgh
jkl
Q
Q
Жирным выделен ввод с клавиатуры.
А то, панимашли, «небезопасен», «переполнение»...
p.s. Для тех, кто не так быстро в голове макросы раскручивает:
формат там
"%4s", просто через макрос для синхронной смены вместе с размером буфера.