, когда я запускаю первую программу, nl
(новая строка) устанавливается на 7ff и печатает 129.
#include<stdio.h>
// countblanks-tabs-newlinesv1.c
void main()
{
long int c;
unsigned char nl, space, tab = 0 ;
while( ( c = getchar() ) != EOF)
{
if ( c == '\n')
{
nl++;
}
if ( c == ' ')
{
space++;
}
if ( c == '\t')
{
tab++;
}
}
printf("input has %d newlines, %d spaces and %d tabs\n", nl, space, tab);
}
Но когда я запускаю вторую программу, все работает нормально ... Я думаю,
Вторая программа
#include<stdio.h>
// countblanks-tabs-newlinesv2.c
void main()
{
long int c;
char space, tab ;
int nl;
nl = 0;
space = 0 ;
tab = 0;
while( ( c = getchar() ) != EOF)
{
if ( c == '\n')
{
nl++;
}
if ( c == ' ')
{
space++;
}
if ( c == '\t')
{
tab++;
}
}
printf("input has %d newlines, %d spaces and %d tabs\n", nl, space, tab);
}
Кстати, это упражнение 1-8 в C Язык программирования Книга