当我运行第一个程序时,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);
}
顺便说一句,这是The C Programming Language Book中的练习 1-8