簡體   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