繁体   English   中英

从文件读取并放入二维缓冲区

[英]reading from a file and putting in two dimensional buffer

我正在尝试从文件(文本)中读取字节,然后放入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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM