简体   繁体   English

我在使用 fwrite() 和 fread() 时遇到了一些问题

[英]I have some trouble with fwrite() and fread()

#define ARRAY_SIZE 10

#include <iostream>
using namespace std;

int main()
{
    // create array mas1 of ARRAY_SIZE integers and fill it with random values
    int array1[ARRAY_SIZE]{ 10, 78, 23, 81, 50, 15, 24, 26, 90, 59 };

    // write ARRAY_SIZE integers from array1[] to f1.txt
    FILE* f1;
    fopen_s(&f1, "f1.txt", "w+");
    fwrite(array1, sizeof(array1[0]), ARRAY_SIZE, f1);

    // read ARRAY_SIZE integers from f1.txt to array2[]
    fseek(f1, 0, SEEK_SET);
    int array2[ARRAY_SIZE];
    fread(array2, sizeof(array2[0]), ARRAY_SIZE, f1);

    // print array1
    cout << "array1: ";
    for (int i = 0; i < 10; i++)
    {
        cout << array1[i] << " ";
    }
    cout << endl;

    // print array2
    cout << "array2: ";
    for (int i = 0; i < 10; i++)
    {
        cout << array2[i] << " ";
    }
}

output: output:
array1: 10 78 23 81 50 15 24 26 90 59数组1:10 78 23 81 50 15 24 26 90 59
array2: 10 78 23 81 50 15 24 -858993460 -858993460 -858993460数组2:10 78 23 81 50 15 24 -858993460 -858993460 -858993460

Why array1 outputs normally but array2 is not?为什么 array1 输出正常,但 array2 不正常?
I use Visual Studio 2019我使用 Visual Studio 2019

Modify your fwrite as将您的 fwrite 修改为

fwrite(array1, sizeof(int), ARRAY_SIZE, f1);

And fread as和 fread 一样

fread(array2, sizeof(int), ARRAY_SIZE, f1);
fclose(f1)

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

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