следующий предложенный код
- аккуратно компилируется
- выполняет желаемую функциональность
- также помечает каждую строку
- использует
isprint()
из ctype.h
, чтобы определить, выводит ли текущий символ или выводит '.'
А теперь предложенный код:
#include <stdio.h>
#include <ctype.h>
int main( void )
{
for( int i = 0; i<256; i++ )
{
if( !( i%10 ) )
{
printf( "\n%3d thru %3d ", i, i+9 );
}
if( isprint( i ) )
{
putchar( i );
}
else
{
putchar( '.' );
}
}
}
Выход из приведенного выше кода:
000 thru 009 ..........
010 thru 019 ..........
020 thru 029 ..........
030 thru 039 .. !"#$%&'
040 thru 049 ()*+,-./01
050 thru 059 23456789:;
060 thru 069 <=>?@ABCDE
070 thru 079 FGHIJKLMNO
080 thru 089 PQRSTUVWXY
090 thru 099 Z[\]^_`abc
100 thru 109 defghijklm
110 thru 119 nopqrstuvw
120 thru 129 xyz{|}~...
130 thru 139 ..........
140 thru 149 ..........
150 thru 159 ..........
160 thru 169 ..........
170 thru 179 ..........
180 thru 189 ..........
190 thru 199 ..........
200 thru 209 ..........
210 thru 219 ..........
220 thru 229 ..........
230 thru 239 ..........
240 thru 249 ..........
250 thru 259 ......
Возможно, вы захотите изменить предложенный код так, чтобы:
- он не выводил начальную пустую строку
- , он останавливал последнюю метку на 255вместо 259
- не печатает начальные '0'
- , не печатает этикетки