Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 08:56   #11
Vivazz
Пользователь
 
Регистрация: 18.02.2011
Сообщений: 11
По умолчанию

Вот код, который у меня получился по замене букв, а как сделать, чтобы слова целиком можно было заменять???
Код:
int main()
{
  FILE *in;
  FILE *out;
  char c;

  in=fopen("file.txt","r");
  out=fopen("file2.txt","w");

  while ( (c=fgetc(in) ) != EOF)
  {
	if ( c == 'b' )
	c= 'A';
	fputc( c,out );
  }
  fclose(out);
  fclose(in);
  system("pause");
}
Vivazz вне форума Ответить с цитированием
Старый 21.02.2011, 11:55   #12
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Как вариант:
Код:
int main()
{
FILE* in;
FILE* out;
char word[32];

in = fopen("file.txt", "r");
out = fopen("file2.txt", "w");
while (fsanf(in, "%s", word) != EOF)
 if (strcmp(word, "Hello") == 0)
  fprintf(out, "Hi");

fclose(out);
fclose(in);
system("pause");
}
Но это на Си. А вот вариант на плюсах:
Код:
#include <fstream>

int main()
{
std::ifstream in("file1.txt");
std::ofstream out('file2.txt');
std::string word;

while (!in.eof())
 {
 in >> word;
 if (word == "Hello")
  out << "Hi";
 }

std::cin.ignore();
std::cin.get();
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 21.02.2011 в 11:59.
Гром вне форума Ответить с цитированием
Старый 21.02.2011, 12:25   #13
Vivazz
Пользователь
 
Регистрация: 18.02.2011
Сообщений: 11
По умолчанию

В первом случае компилятор ругается на неизвестную функцию в этой строке
while (fsanf(in, "%s", word) != EOF) // Вроде все подключено....// разобрался - функция с ошибкой названа, должно быть fscanf, но все равно условие в первом случае тоже не выполняется.
Во втором создается файл File2.txt но пустой (программа виснет)
Если так
Код:
int main()
{
char word[32];

ifstream fin("file.txt");
ofstream out("file2.txt");
while (!fin.eof())
 {
 fin >> word;
 if (word == "Hello")
  out << "Hi";
 }
system("pause");
}
Прога не виснет, но условие Не выполняется

Последний раз редактировалось Vivazz; 21.02.2011 в 13:01.
Vivazz вне форума Ответить с цитированием
Старый 21.02.2011, 13:02   #14
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
while (fsanf(in, "%s", word) != EOF)
Опечатка. Должно быть fscanf.
Цитата:
Прога не виснет, но условие Не выполняется
Условие не выполняется, т.к. в файле не встретилось слово Hello (кстати, слова типа "Hello," "Hello!" такой вариант не распознает, т.к. ограничением ввода являются только пробельные символы, но не знаки типа знаков препинания).
Вообще это была лишь иллюстрация, а чтобы это была программа, заменяющая слово Hello во всем файле:
Код:
while (!fin.eof())
 {
 fin >> word;
 if (word == "Hello")
  out << "Hi";
 else
  out << word;
 }
Ну и в первом варианте тоже добавить else.
Ну а для распознавания слов в обрамлении знаков препинания используйте поиск по строке.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.02.2011, 13:09   #15
Vivazz
Пользователь
 
Регистрация: 18.02.2011
Сообщений: 11
По умолчанию

Код:
while (!fin.eof())
 {
 fin >> word;
 if (word == "Hello")
  out << "Hi";
 else
  out << word;
 }
Тут происходит зависон и до ожидания нажатия клавиши прога не доходит. Слово я скопировал с кода в проге, так что условие не выполняется даже если там есть это слово (Hello). Не знаю, может это у меня так (Среда разработки Embarcadero RAD Studio 2010 )
Vivazz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом. Pascaler Помощь студентам 2 27.05.2010 20:46
Работа с файлом Leoman Помощь студентам 0 02.04.2010 21:57
работа с файлом lg12 Помощь студентам 7 24.08.2009 08:33