fsbqsl 2016-07-22 04:04 采纳率: 100%
浏览 1243
已采纳

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条回答

  • 小灸舞 2016-07-22 06:43
    关注

    你的这句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") ;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!