0

I want to readfile and merge them all to the arraytotal array ,
It works fine for individual file, don't know why, it printed out some weird character for the final
Thanks

#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std; 
#include <iostream>
void fnSortHeap(char array[], int arr_ubound);

int main() {
  FILE *file;
  int i;
  int j=0;
  char fileparam[200] ;
  // char fileparam1[16] ;
  char arraytotal [1000];
  int start =0 ;
  int k = 0 ;
  

            if(sprintf(fileparam, "in0.dat",i) )
                {
                     file = fopen(fileparam,"r");
                    if(file==NULL)
                    {
        				 printf("Error: %s does not exist\n",fileparam);
                         
                    }
                    else         
                    {
            	       printf("%s was opened successfully.\n", fileparam);	      
            	      
            	       printf("Good\n");
                        while(!feof(file))
            	       {
                           arraytotal[k] = (char)fgetc(file);
                           printf("%c",(char)arraytotal[k]);
                           start++;
                       } // end for
        
                    }
                
                } 
               printf("%d\n" ,start);
        if(sprintf(fileparam, "in1.dat",i) )
                {
                     file = fopen(fileparam,"r");
                    if(file==NULL)
                    {
        				 printf("Error: %s does not exist\n",fileparam);
                         
                    }
                    else         
                    {
            	       printf("%s was opened successfully.\n", fileparam);	      
            	      
            	       printf("Good\n");
            	          while(!feof(file))
            	       {
                           arraytotal[k] = (char)fgetc(file);
                           printf("%c",arraytotal[k]);
                           start++;
                       } // end for
            	 
        
                    }
                
                } // end if 
          // printf("%d\n%d", sizeof fileparam,start);
            
          
        if(sprintf(fileparam, "in.dat",i) )
                {
                     file = fopen(fileparam,"r");
                    if(file==NULL)
                    {
        				 printf("Error: %s does not exist\n",fileparam);
                         
                    }
                    else         
                    {
            	       printf("%s was opened successfully.\n", fileparam);	      
            	      
            	       printf("Good\n");
            	           while(!feof(file))
            	       {
                           arraytotal[k] = (char)fgetc(file);
                           printf("%c",arraytotal[k]);
                           start++;
                       } // end for
            	 
        
                    }
                
                } // end if 
     
      printf("Final Result is \n");
                   for ( k = 0; k <sizeof arraytotal; k++)
        	       {
                      
                       printf("%c",(char)arraytotal[k]);
                      
                   } // good code for open file
        for(k=sizeof arraytotal;k>1;k--)
        fnSortHeap(arraytotal,k-1);
        // for ( k = 0; k <sizeof arraytotal; k++)
//        	       {
//                      
//                       printf("%c",arraytotal[k]);
//                      
//                   } // good code for open file
  
// the rest of process related to the file are trim
	
 fclose(file);
 
   system("pause");
return 0;
  
}

void fnSortHeap(char array[], int arr_ubound){
  int i, o;
  int lChild, rChild, mChild, root, temp;
  root = (arr_ubound-1)/2;

  for(o = root; o >= 0; o--){
  for(i=root;i>=0;i--){
  lChild = (2*i)+1;
  rChild = (2*i)+2;
  if((lChild <= arr_ubound) && (rChild <= arr_ubound)){
  if(array[rChild] >= array[lChild])
  mChild = rChild;
  else
  mChild = lChild;
  }
  else{
  if(rChild > arr_ubound)
  mChild = lChild;
  else
  mChild = rChild;
  }

  if(array[i] < array[mChild]){
  temp = array[i];
  array[i] = array[mChild];
  array[mChild] = temp;
  }
  }
  }
  temp = array[0];
  array[0] = array[arr_ubound];
  array[arr_ubound] = temp;
  return;
  }
2
Contributors
1
Reply
3
Views
5 Years
Discussion Span
Last Post by MonsieurPointer
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.