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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2011, 12:23   #1
bll3
Новичок
Джуниор
 
Регистрация: 07.05.2011
Сообщений: 2
Печаль работа с файлом(что за ошибка?)

нужно в тексте заменить цифры прописью( 0 -> ноль, 1 -> один и т.д.)
выдает ошибку "cannot convert from 'char [4]' to 'char'"

#include <iostream.h>
#include <fstream.h>
#include <string.h>
int main()
{

char ch;

char a[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
char b0[4] = {'н','о','л','ь'};
char b1[4] = {'о','д','и','н'};
char b2[3] = {'д','в','a'};
char b3[3] = {'т','р','и'};
char b4[6] = {'ч','е','т','ы','р','е'};
char b5[4] = {'п','я','т','ь'};
char b6[5] = {'ш','е','с','т','ь'};
char b7[4] = {'с','е','м','ь'};
char b8[6] = {'в','о','с','е','м','ь'};
char b9[6] = {'д','е','в','я','т','ь'};


const int len = 200;

ifstream in_stream;
in_stream.open("text.txt");
if (in_stream.fail()) {cout<<"Open file error\n"; return(1);}
in_stream.get(ch);


while (!in_stream.eof())
{cout<<ch; in_stream.get(ch);

for (int i = 0; i <len; i++)
if (ch = a[i])
{
if (ch = 0) ch = b0;
if (ch = 1) ch = b1;
if (ch = 2) ch = b2;
if (ch = 3) ch = b3;
if (ch = 4) ch = b4;
if (ch = 5) ch = b5;
if (ch = 6) ch = b6;
if (ch = 7) ch = b7;
if (ch = 8) ch = b8;
if (ch = 9) ch = b9;
}


}
in_stream.close();
cout << endl << endl;
return 0;
}
bll3 вне форума Ответить с цитированием
Старый 07.05.2011, 13:21   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

bll3

выдает ошибку "cannot convert from 'char [4]' to 'char'"

ты пытаешься присвоить массив символу.
что в принципе неважно, ибо программа не рабочая совершенно.

тебе нужно либо производить замену в памяти и потом сливать полученный результат, либо открывать второй файл на запись и работать с ним.

примерно как-то так...

Код:
std::ifstream ifs("in.txt");
std::ofstream ofs("out.txt");

while (!ifs.eof())
{
   char ch;
   ifs.getc(ch);

   switch(ch)
   {
       case '0':
          ofs << "ноль";

      ......................

       default:
          ofs << ch;
   }
}
Rififi вне форума Ответить с цитированием
Старый 08.05.2011, 12:08   #3
bll3
Новичок
Джуниор
 
Регистрация: 07.05.2011
Сообщений: 2
По умолчанию

а нельзя делать замену только на вывод, не изменяя ничего в файле?
bll3 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что с файлом и как его, так сделали или изуродовали? valerij Microsoft Office Excel 4 10.01.2011 16:47
Работа с файлом D_E_N Общие вопросы Delphi 6 17.07.2009 14:03
ошибка при работе с файлом Juffin Общие вопросы Delphi 3 11.04.2009 21:37
Ошибка при работе с файлом LeoN Общие вопросы Delphi 1 07.12.2007 15:21