编写一个统计空格、制表符、换行符的程序
代码:
#include <stdio.h>
void countBlank(FILE *fin);
int main(int argc, char *argv[])
{
countBlank(stdin);
countBlank(fopen("main.c", "r"));
return 0;
}
void countBlank(FILE *fin)
{
size_t nSpace = 0;
size_t nTab = 0;
size_t nEnter = 0;
int c = 0;
while ((c = fgetc(fin)) != EOF) {
switch (c) {
case ' ':
++nSpace;
break;
case '\t':
++nTab;
break;
case '\n':
++nEnter;
break;
default:
break;
}
}
printf("space num: %ld\n", nSpace);
printf("tab num: %ld\n", nTab);
printf("enter num: %ld\n", nEnter);
}
两个问题:
1、size_t在哪里定义的?stdio.h?string.h?stdlib.h?我认为stdio.h有size_t的定义(声明),其它头文件中也可能有!
2、printf size_t类型变量时,应该用%d还是%ld?我认为是%ld!