所以我有一個.cpp文件,其中包含一個接收文件名的函數,並且應該返回一個包含文件內容的字符串(實際上修改過的內容,我修改了代碼以使其更易於理解,但沒有任何對我的問題有影響)。問題是f.good()
正在返回false
和循環,它讀取文件不起作用。 CODE:我的fstream不好還是不好()?
#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>
時它甚至不會拋出錯誤)。 也許有一種不同的方法來使循環? 我很樂意聽到關於如何解決這個問題的任何建議或也許是如何實現我的目標的不同方法。
請注意,在循環中,actualy需要分析每個字符,並將一些字符更改爲不同的字符,我也將添加行。 Maby我的思想堅持我的方法,但我不確定我是否會用你的建議方法實現我想要的。 – krishkule 2012-04-24 16:18:04
@krishkule:參見已編輯的答案。 – 2012-04-24 16:35:41