Có hàm nào xoá đi 1 kí tự không?

Mình sử dụng hàm fprintf để ghi vào file nhưng nó thừa dấu + ,có hàm nào xóa đi một kí tự trước nó không , mình thử sài \b nhưng nó không được

#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

FILE *f ;
void docfile(int a[],int &n) {
  	 f = fopen("so1.txt","r") ;
  	if(f != NULL) {
  	  	n = 0 ;
  	  	while(feof(f) == 0) {
  	  	    if(fscanf(f,"%d",&a[n]) == 1) {
  	  	    	n++ ;
			}
		}
		fclose(f) ;
	}
	else printf("Loi file") ;
}

int snt(int n)
{
	int dem = 0 ;
	for(int i = 1 ; i <= n/2 ; i++) {
		if(n % i == 0)   dem++ ;
	}
	if(dem == 1)  return 1 ;
	else   return 0 ;
}

void ghifile(int a[],int n) {
  	f = fopen("write.txt","w") ;
  	if(f != NULL) {
         fprintf(f,"%s","Tong cac nguyen to : ") ;
	 int s = 0 ;
	 for(int i = 0 ; i < n ; i++) {
	 	if(snt(a[i]) == 1) {
	 	   fprintf(f,"%d+",a[i]) ;
		   s = s + a[i] ;	
		}
	 }
	 fprintf(f,"\b = %d",s) ;
	 fclose(f) ;
    }
    else printf("loi file") ;
}

int main()
{
	int a[100],n ;
	docfile(a,n) ;
	ghifile(a,n) ;
	
}

Việc gì phải ghi vào rồi tìm cách xóa chứ. :rofl:
Xét nếu hết phép toán (giá trị cuối) thì không cần ghi vào nữa.

for(int i = 0 ; i < n ; i++) {
	 	if(snt(a[i]) == 1) {
	 	   fprintf(f,"%d",a[i]) ;
                   if (i!=n-1)fprintf(f,"+");
		   s = s + a[i] ;	
		}
	 }
2 Likes

được rồi , nghĩ sâu xa quá :3 , cảm ơn ông.

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