统计行数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define PRINT_ERR(msg) \
do { \
printf("%s:%s:%d\n", __FILE__, __func__, __LINE__); \
perror(msg); \
exit(-1); \
} while (0)
int getlines(FILE *f) {
int lines = 0;
char s[128] = {0};
while (fgets(s, sizeof(s), f) != NULL) {
if (s[strlen(s) - 1] == '\n') {
lines ++;
}
}
lines ++;
return lines;
}
int main(int argc, const char *argv[]) {
if (argc < 2) {
printf("please input file name\n");
return -1;
}
FILE *f = NULL;
if ((f = fopen(argv[1], "r")) == NULL) {
PRINT_ERR("fopen error");
}
int lines = getlines(f);
printf("lines = %d\n", lines);
fclose(f);
return 0;
}
统计大小
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define PRINT_ERR(msg) \
do { \
printf("%s:%s:%d\n", __FILE__, __func__, __LINE__); \
perror(msg); \
exit(-1); \
} while (0)
int getsize(FILE *f) {
int size = 0;
char s[128] = {0};
while (fgets(s, sizeof(s), f) != NULL) {
size += strlen(s);
}
return size;
}
int main(int argc, const char *argv[]) {
if (argc < 2) {
printf("please input file name\n");
return -1;
}
FILE *f = NULL;
if ((f = fopen(argv[1], "r")) == NULL) {
PRINT_ERR("fopen error");
}
int size = getsize(f);
printf("size = %d\n", size);
fclose(f);
return 0;
}