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

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器