1 #include<stdlib.h> 2 #include<complex.h> 3 #include<stdio.h> 4 5 int main() 6 { 7 FILE *fp; 8 fp=fopen("test_data.dat","rb"); 9 int N=32,i=0; 10 complex x,*in; 11 in=malloc(sizeof(complex)*N); 12 if (fread(in,16,32,fp) != 32) 13 printf("error in reading from file failed\n"); 14 else{ 15 for(i=0;i<N;i++) 16 printf("%lf\t",*(in+i+0)); 17 } 18 return 0; 19 } i am sorry but this code also gives the same error error in reading from file failed ankit --- Sriharsha Vedurmudi <sriharsha.v@xxxxxxxxxxxxxxxxxx> wrote: --------------------------------- Ankit Jain wrote: 1 #include<stdlib.h> 2 #include<complex.h> 3 #include<stdio.h> 4 5 int main() 6 { 7 FILE *fp; 8 fp=fopen("test_data.dat","rb"); 9 int N=32,i=0; 10 complex x,*in; 11 in=malloc(sizeof(complex)*N); 12 if (fread(in,16,32*16,fp) != 32) 13 printf("error in reading from file failed\n"); 14 else{ 15 for(i=0;i<N;i++) 16 printf("%lf\t",*(in+i+0)); 17 } 18 return 0; 19 }it gives error"error in reading the file" Which in the above errors (in Bold) is displayed. Because, both of themare different. And I dont see any means by which it would print theerror you specified. Coming to fread, the third arguement should be 32 in case you aretrying to read 32 items each of size 16 bytes and then the return valuewill be 32 in case it actually reads 32 such items. In the abovestatement, you have asked fread like this: Read 32 * 16 elements (total of 512 elements) each 16 bytes long from'fp' and store tehm at 'in'. If you dont read 32 such elements, printerror message. Can you see the ambiguity here (ask it to read 512 elements and compareif it reads 32)..... -Harsha ________________________________________________________________________ Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now http://uk.messenger.yahoo.com/download/index.html