01/10/2018, 16:06
Báo lỗi Segmentation fault (core dumped) khi chạy chương trình đếm số từ có trong một file với hàm
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
", 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 != '
' && c != ' '){
count ++;
}
}
return count;
}
Mình cảm ơn.
Bài liên quan
Để ý 3 cái này:
(1)
int count_num_char(FILE *fp)
(2)
int *num_char = NULL;
(3)
num_char = count_num_char(fp);
Mình mới sửa lại là:
(2) int num_char = 0;
Vậy bạn chạy lại thử hết chưa? OvO
Được rồi.
Cảm ơn bạn nhiều.