Отправляет email-рассылки с помощью сервиса Sendsay

[prg] замена строки в фале c++ .

ждравствуйте.
помогите, пожалуйста.
Программа должна заменить все вхождения строки в файле на другую строку
и вывести результат в другой файл.
При этом для чтения файла пользоваться стандартными средствами си
(fprintf, fscanf)
каждая строка должна быть преобразована к std::string.
для замены пользоваться методами std::string;

#include<string >
#include<cstring>
#include<stdio.h>
void replace_strings(char *what, char *repl, FILE *in, FILE *out)
{
char str_1 [256] ={0};
std::string what_ =what;
std::string repl_ =repl;
bool ok =false;
for (int i =0; str_1[i] !='\n'; i++)
/* понимаю, что здесь ошибка, но как правильно?*/

{
fscanf (in, "%c", &str_1[i]);
}
std::string str_2 =str_1;
if (str_2.compare(what_) ==0)
{
ok =true;
}
if (ok)
{
std::string str_3 =repl_;
swap(str_2, str_3);
char *p =new char [str_2.length() +1];
std::strcpy(p, str_2.c_str());
for (int i =0; i < str_2.length() +1; i++)
{
fprintf(out, "%c", p[i]);
}
fprintf (out, "\n");
delete(p);
}
else
{
char *p =new char [str_2.length() +1];
std::strcpy(p,str_2.c_str());
for (int i =0; i < str_2.length() +1; i++)
{
fprintf(out, "%c", p[i]);
}
fprintf (out, "\n");
delete(p);

}

fclose(in);
fclose(out);

}
Предполагается, что имя входного и выходного файла будут переданы main в
качестве аргументов командной строки.
Заранее спасибо за ответ.

Ответить   Sat, 12 Oct 2013 00:31:08 +0700 (#2844984)

 

Ответы:

Здравствуйте.
Вопрос пока снимается.
12.10.2013 0:31, дима пишет:

Ответить   Sat, 12 Oct 2013 16:04:40 +0700 (#2845529)