fsbqsl
fsbqsl
采纳率37.5%
2016-07-22 04:04 浏览 1.2k
已采纳

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条回答 默认 最新

  • 已采纳
    qq423399099 小灸舞 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") ;
    }
    
    点赞 1 评论 复制链接分享

相关推荐