Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема считывания символов из созданного файла, Не может преобразовать int в char 
:(
    Опции темы
yurk84
Дата 5.6.2010, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Хочу по-символьно считывать данные из созданного файла. Взял кусок программы из учебника Шилдта, однако выдаётся ошибка:
Код

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
   char Club_name_in[20], ch, *blank = "";

   FILE *f;

   if ((f = fopen("Result2.txt", "r")) == NULL)
   {
      printf("Ne otkryl");
      exit(1);
   }

   else

   {
      strcpy(Club_name_in, blank);

      do
      {
        ch = getc(f);
        strcat(Club_name_in, ch);    // жалуется на эту строчку!!!
      }
      while(ch!='*');

   fprintf(stdout, "%s", Club_name_in);
   fclose(f);
   }
}


Выведенные ошибки:

Compiling OPEN_FIL.CPP:
Error OPEN_FIL.CPP 33: Cannot convert 'int' to 'const char *'
Error OPEN_FIL.CPP 33: Type mismatch in parameter '__src' in call to 'strcat(char *,const char *)'


Ошибка в строчке 27. Помогите разобраться в чём тут может быть дело. Заранее спасибо.
PM MAIL Skype   Вверх
toxx
Дата 5.6.2010, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Код

char * strcat ( char * destination, const char * source );


у тебя char ch
Код

char Club_name_in[20], ch,


Это сообщение отредактировал(а) toxx - 5.6.2010, 20:22
PM MAIL   Вверх
cutwater
Дата 5.6.2010, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Разумеется жалуется. strcat требует второй аргумент типа const char*, а Вы ей туда char пытаетесь всунуть.

ЗЫ... опоздал немного

Это сообщение отредактировал(а) cutwater - 5.6.2010, 20:22


--------------------
user posted image
PM MAIL   Вверх
yurk84
Дата 5.6.2010, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Цитата(cutwater @ 5.6.2010,  20:21)
Разумеется жалуется. strcat требует второй аргумент типа const char*, а Вы ей туда char пытаетесь всунуть.
ЗЫ... опоздал немного


А как он может быть const, если ch меняется по мере пробега по файлу. Подскажите как мне поступить.

Это сообщение отредактировал(а) yurk84 - 5.6.2010, 20:32
PM MAIL Skype   Вверх
djamshud
Дата 5.6.2010, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Например так:

Код

char ch[2]={1,'\0'};
...
ch[0]=getc(f);
strcat(str,ch);
...


Хотя костылей можно придумать тысячу и один.

//Посимвольное чтение файлов - зло.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
toxx
Дата 5.6.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



//Посимвольное чтение файлов - зло.  +1


я также сообразил как и вы, но решил не афишировать(как-то убого смотрится это =) )
PM MAIL   Вверх
yurk84
Дата 5.6.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 13.2.2009
Где: Москва

Репутация: нет
Всего: нет



Цитата(djamshud @ 5.6.2010,  21:33)
Например так:

Код

char ch[2]={1,'\0'};
...
ch[0]=getc(f);
strcat(str,ch);
...


Хотя костылей можно придумать тысячу и один.

//Посимвольное чтение файлов - зло.


Большое спасибо за помощь, господин djamshud! Кстати, я полностью согласен с Вашим мнением насчёт посимвольного чтения файлов. Но другого я пока ещё не нашёл. Так что если Вы мне его подскажите буду ещё больше Вам благодарен.  smile 
PM MAIL Skype   Вверх
djamshud
Дата 5.6.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



1. Блочное чтение - fread;
2. Ммапинг.

Вам пока пункта 1 хватит наверное.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
bsa
Дата 6.6.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(djamshud @  5.6.2010,  23:40 Найти цитируемый пост)
1. Блочное чтение - fread;
еще есть: read и std::istream::read
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.