Итак, у меня есть .cpp-файл с функцией, которая получает имя файла, и должна возвращать String с содержимым файла (фактическое измененное содержимое, я модифицировал код, чтобы сделать его более понятным, но у которого нет влияние на мою проблему). Проблема в том, что f.good()
возвращает false
, и цикл, который читает файл, не работает. КОД:Неужели мой 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>
). Возможно, существует какой-то другой способ создания цикла? Я буду очень рад услышать любые предложения о том, как исправить это или, может быть, другой способ, как достичь моей цели.
Смотрите, дело в том, что в цикле i фактический должен будет проанализировать каждый символ и изменить некоторые символы на разные, также я добавлю строки. Maby мой ум застрял в моем методе, но я не уверен, что я собираюсь добиться того, что хочу с помощью предлагаемого вами метода. – krishkule
@krishkule: см. Отредактированный ответ. –