关于VS2013下fstream使用的问题

#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
using namespace std;

void main()
{
    fstream read;
    cout << "Now opening...\n";
    read.open("f1.txt", ios::in | ios::out | ios::app);
    if (!read)
    {
        cout << "ERROR!" << endl;
        system("pause");
        exit(1);
    }
    cout << "Opening file succeeded.\nNow getting info...\n";
    read.clear();
    char m[50];
    cout << "Now writing info...\n";
    read.write(m, 50);
    system("pause");
    read.close();
    system("pause");
} 

为什么会出现图中的情况?!
图片说明

参考C++读写文件
你上面贴的代码和你的截图代码都不一样,你在接受键盘输入的代码是怎么样的?试试下面的代码或者你的代码是否有判断用户输入了回车,结束输入?

while(read.get(m,50,'\0')!=NULL)cout<<m; //注意结束条件的判断

read是一个local variable, 你对它进行判空操作来确定是否正确打开了某文件的做法是没有意义的。

m初始化一下,里里面什么内容都没有就写进去。

Just try to code in model: try { do somthing; } catch (exception &e) { cerr<< e.waht()<<endl;}

不能判断read是否为0,可以用read.is_open()来替代解决