C++ 文件输入保存 问题

#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 ,结果却显示如下:
![图片说明](https://img-ask.csdn.net/upload/201607/22/1469160059_585329.png)
我感觉和下面的代码类似,下面却可以保存成功:
    //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++大神,点拨一下小弟!十分感谢!!!

1个回答

你的这句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") ;
}
fsbqsl
fsbqsl 我知道怎么回事了,谢谢!
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问