#include
#include
int main()
{
using namespace std ;
cout << "Please Enter two integers : " << endl ;
const int Arraysize = 2 ;
int Array [ Arraysize ] ;
for ( size_t size = 0 ; size != Arraysize ; ++ size )
{
cin >> Array [size];
}
const char* filename = "C:\\save_data.txt" ;
FILE* FP = fopen( filename , "wb") ;
if ( FP == NULL )
{
cout << "failed to save data " << endl ;
return -1 ;
}
fwrite (Array , 1 , 8 , FP ) ;
fclose (FP) ;
system("pause") ;
}
为什么这段代码输入2个整型数据后,打开保存的文档,看到的内容却不是输入的内容,比如我输入11 11 ,结果却显示如下:

我感觉和下面的代码类似,下面却可以保存成功:
//const char *filename = "C:/save_data.txt" ;
//FILE *fp = fopen(filename,"wb") ;
//if ( fp == NULL )
//{
// cout << "failed to save data " << endl ;
// return -1 ;
//}
//char buf[] = "Hello" ;
//fwrite(buf,1,5,fp) ;
//fclose(fp);
为什么啊?
麻烦各位C++大神,点拨一下小弟!十分感谢!!!
你的这句fwrite (Array , 1 , 8 , FP ) ;最好写成fwrite (Array , 8, 1 , FP ) ;
fwrite是二进制读写的,你直接双击打开文件当然是看不到写入的数据的,用fread读一下你就知道你写入正确了没
#include <iostream>
#include<fstream>
int main()
{
using namespace std ;
cout << "Please Enter two integers : " << endl ;
const int Arraysize = 2 ;
int Array [ Arraysize ] ;
for ( size_t size = 0 ; size != Arraysize ; ++ size )
{
cin >> Array [size];
}
const char* filename = "C:\\save_data.txt" ;
FILE* FP = fopen( filename , "wb") ;
if ( FP == NULL )
{
cout << "failed to save data " << endl ;
return -1 ;
}
fwrite (Array , 1 , 8, FP ) ;
fclose (FP) ;
//读取写入的数据
FILE* FP2 = fopen( filename , "rb") ;
int Array2[ Arraysize ] ;
fread(Array2, 8, 1, FP2);
cout << Array2[0] << "," << Array2[1] << endl;
system("pause") ;
}