Chào mọi người,
Mình đang thực hiện chương trình đếm số từ có trong một tập tin (file) và muốn viết đếm số từ với hàm kiểu trả về (Đã viết thành công với hàm kiểu void). Khi biên dịch chương trình thì ok không báo lỗi gì cả, nhưng khi cho chạy chương trình thì lại báo như sau:
Segmentation fault (core dumped)
Tìm mà chưa biết lỗi từ đâu. Chương trình được viết:
#include <stdio.h>
#include <stdlib.h>
int count_num_char(FILE *fp);
int main (int argc, char *argv[])
{
FILE *fp = NULL;
int num_char = 0;
int n = 0;
fp = fopen("file_text/file_source.txt", "r+"); // "r+"" : it mean read and write into file. If "r" it is only read
if(fp == NULL) {
perror("Error: ");
return(-1);
}
num_char = count_num_char(fp);
printf("Total characters: %d\n", num_char);
fclose(fp);
return 0;
}
int count_num_char(FILE *fp)
{
char c = 0;
int count = 0;
c = fgetc(fp);
for (c = getc(fp); c != EOF; c = getc(fp)){
if (c != '\n' && c != ' '){
count ++;
}
}
return count;
}
Mình cảm ơn.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?