我试图按字节读取文件(文本)并将其放入sndbuffer。但这正在印刷一些垃圾。为什么这样?
另外,由于我正在学习使用文件,因此欢迎提供有关代码改进的任何建议。
unsigned char sndbuffer[100][1560];
int main()
{
FILE *fp;
unsigned char filename[50];
unsigned char ch;
unsigned int i=0,j=0;
printf("\nEnter file name(with extn)\t");
scanf("%s",filename);
fp=fopen(filename, "r");
while(ch=fgetc(fp))
{
memcpy(&sndbuffer[i][j],&ch,1);
printf("%c",sndbuffer[i][j]);
j=(++j)%1560;
if(j==0)
i++;
if(i==100)
break;
}
printf("\nOUT OF LOOP");
return 0;
}
谢谢 :)
您的代码存在的一个问题是此语句
unsigned char *filename;
这定义了一个指向的指针unsigned char
,但是,您需要一个char数组来存储文件名。更改为
#define MAXLEN 50+1 // +1 for the terminating null byte
char filename[MAXLEN];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句