Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Trimo
Зарегистрирован: 24.12.2003 Сообщения: 1
|
Добавлено: Ср Дек 24 2003 02:40 Заголовок сообщения: Помогите разобраться со считыванием файлов в BC++ |
|
|
Я пишу прогу в BC++ 3.1 под XP.Мне нужно перевести int-товское число в строку, а потом записать эту строку в файл. Для этого пытаюсь использовать функцию itoa(int,string,10), когда запускаю всё идёт нормально, но вконце программы меня полностью выбрасывает из BC и он закрывается. Что в этом случае делать? Есть ли ещё какие-нибудь функции, переводящии int-товское значение в строку? |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Ср Дек 24 2003 17:54 Заголовок сообщения: Если у ж дело действительно в конвертации.... |
|
|
то попробуй сделать проще (примерно так):
include<fstream.h>
int main(void)
{int MyChislo=1234;
...
ofstream otpt("output.txt");
otpt<<"Это число автоматически преобразовано к строке: "<<MyChislo;
.....
otpt.close();
return(0);} |
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Ср Дек 24 2003 22:17 Заголовок сообщения: |
|
|
FFF: Тема так названа, потому что мне действитемьно нужно сначала записать структуру в файл, а потом прочитать из файла.Вообще цель программы создать элекртонную библиотеку. У меня структура типа: Id,Author,Title,Theme,Year. Так вот при добавлении новой книги в файл мне нужно присвоить ей следующий по номеру ID. Но когда я пишу: itoa(t_id,temp->id,10) меня выбрасывает из BC. Если интересно можешь зайти на сайт www.topcourse.ru и посмотреть что вообще нужно для этой проги.В любомслучае спасибо. |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Пт Дек 26 2003 09:15 Заголовок сообщения: можно так |
|
|
Если делаешь базу данных, то советую использовать типизированный файл, т.е. писать в файл структуры. Соответственно в этом случае используется не fputs или fprintf а fwrite/fread, а открывается файл как fopen( "name.dat", "rb" ) или "wb" или "r+b". Будет на много быстрее навигация по базе, т.к. размер структуры фиксированный. Исчезает необходимость в конвертации число-строка-опять_число. Хотя, если в твоём случае, при использовании текстовой базы, в одну строку записывать одну заись с разделением пробелом или, как обычно делается, табуляцией, то можно экономить место на диске за счёт переменной длины строки-записи, зависящей от длины названия книги, имени автора и т.д.
PS. когда будешь указывать длину названия книгии, имя автора в структуре, не забудь, что ноль символ в конце строки тоже занимает место (сам когда-то так ошибся) |
|
Вернуться к началу |
|
|
ohlamon Гость
|
Добавлено: Пн Дек 29 2003 16:29 Заголовок сообщения: |
|
|
используй IntToStr(int) |
|
Вернуться к началу |
|
|
|