PDA

View Full Version : نحوه ی ذخیره کردن دیتاهای int , float , ... در فایل ، توسط تابع fwrite() (?)



hosseinam1370
دوشنبه 25 اسفند 1393, 10:29 صبح
دوستان من کد زیر رو نوشتم و به خوبی کار میکنه ، و کارشم به این صورته که بیاد مقادیر int متغیر buffer رو در فایل text بنویسه و بعد دوباره بیاد همون مقادیری که در buffer ذخیره شده رو در consol نمایش بده ، و این کار رو هم به درستی انجام میده.
مشکل اینجاست که در فایل text یه مقادیر نامفهوم نمایش داده میشه ، و جالب تر اینکه برنامه از همون مقادیر نامفهوم میآد دیتای نوشته شده رو پیدا میکنه و درست نشون میده اطلاعات ذخیره شده در فایل رو.
حالا میخواستم راهنمایی کنید که برای ذخیره ی داده int و ... باید چیکار کنیم و دلیل نوشتن مقادیر نامفهوم در فایل و خوندن درست آن در فایل چیه ؟

این کد :
#include "stdafx.h"
#include <fstream>
#include<iostream>
#include <string>
#include<stdio.h>
using namespace std;
void main()
{
FILE *hossein , *love;
int c;
int buffer[] = {1 ,2,3};
int b2[5];
fopen_s (&hossein , "text.txt" , "w");
fwrite(buffer , sizeof(int) , 5 , hossein);
fclose(hossein);

//read from FILE data code:
fopen_s(&love , "text.txt" , "r");

fread (b2 , sizeof(int) , 5 , love);
for (int i = 0; i <= 4; i++)
{
cout << b2[i];
}



system("pause");
}


اینم مقادیر نامفهومی که نوشته میشه در فایل:
129473

#target
دوشنبه 25 اسفند 1393, 11:10 صبح
Buffer به صورت باینری ذخیره میشه
برای ثبت به شکل رشته از چیزی مثل fprintf استفاده کنین