【发布时间】:2012-04-24 15:39:00
【问题描述】:
所以我有一个 .cpp 文件,其中有一个接收文件名的函数,并且应该返回一个包含文件内容的字符串(实际上修改了内容,我修改了代码以使其更易于理解,但没有对我的问题有任何影响)。问题是 f.good() 正在返回 false 并且读取文件的循环不起作用。
代码:
#include "StdAfx.h"
#include "Form21.h"
#include <string>
#include <fstream>
#include <iostream>
string ReadAndWrite(char* a){
char filename[8];
strcpy_s(filename,a);
string output;
char c;
ifstream f(filename,ios::in);
output+= "Example text"; // <-- this writes and returns just fine!
c = f.get();
while (f.good())
{
output+= c;
c= f.get();
}
return output;
}
有人知道为什么会这样吗?
它是否与这是一个单独的 .cpp 文件有关(当我删除 #include <fstream> 时它甚至不会抛出错误)。
也许有一种不同的方法来制作循环?
我很高兴听到有关如何解决此问题的任何建议或可能是有关如何实现我的目标的不同方法。
【问题讨论】: