Movart
2015-01-24 06:04
采纳率: 66.7%
浏览 4.1k

关于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");
} 

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • save4me 2015-01-24 15:12
    已采纳

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

    while(read.get(m,50,'\0')!=NULL)cout<<m; //注意结束条件的判断
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • tt33415366 2015-01-24 06:08

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

    评论
    解决 无用
    打赏 举报
  • oyljerry 2015-01-24 06:19

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

    评论
    解决 无用
    打赏 举报
  • tt33415366 2015-01-24 06:55

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

    评论
    解决 无用
    打赏 举报
  • z_s_w 2015-01-24 15:34

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题