簡體   English   中英

什么我讀完后沒有看到文件的內容?

[英]What I don't see the content of the file after reading?

我用fwrite寫入文件,然后讀取文件的內容,但是當我將其打印到緩沖區並通過“printf”將其打印到標准輸出時,我什么也沒看到...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>

int main()
{
    uint8_t *my_buffer = malloc(64UL);

    FILE *fp1 = fopen("my_buffer_file", "w");
    fprintf(fp1, "0123456789012345678901234567890123456789012345678901234567890123");
    FILE *my_buffer_fd = fopen("my_buffer_file", "r" );
    int my_new_ret = fread(my_buffer, 1, 64UL, my_buffer_fd);
    int size = my_new_ret;
    printf("my_buffer = |%s|\n", my_buffer);
    printf("size = |%d|\n", size);


    return 0;
}

有人知道為什么會這樣嗎?

您需要先關閉 fp1,然后才能讀取同一個文件,就像這樣-

int main()
{
    uint8_t  *my_buffer = malloc(64UL);
    FILE *fp1 = fopen("my_buffer_file", "w");
    fprintf(fp1, "0123456789012345678901234567890123456789012345678901234567890123");

    fclose(fp1);    // New line here

    FILE *my_buffer_fd = fopen("my_buffer_file", "r" );
    int my_new_ret = fread(my_buffer, 1, 64UL ,my_buffer_fd);
    int size = my_new_ret;
    printf("my_buffer = |%s| \n", my_buffer);
    printf("size = |%d|\n", size);
    return 0;
}

輸出:

my_buffer = |0123456789012345678901234567890123456789012345678901234567890123| 
size = |64|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM