Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 03.01.2015, 18:44   #11
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

ну а если не любимый мой Microsoft Visual C++ 6.0 взять ?

Добрый день !

Скажите пожалуйста , ставится ли символ конца строки '\0' при записи

строки с помощью функции fputs(a,f1); ?

Код:
int main()

{      
        char c,b[20],a[] = "Hello Anya";
        FILE *f1 = fopen("C:\\Test_2.txt","w");
        fputs(a,f1);
        fclose(f1);
        f1 = fopen("C:\\Test_2.txt","r");
        for (int i=0;(c = fgetc(f1)) != EOF;i++) b[i] = c;
        printf("\n%s\n",b);
        fclose(f1);
        getch();
        return 0;
}
Название: --.JPG
Просмотров: 34

Размер: 19.7 Кб

Последний раз редактировалось Stilet; 02.09.2015 в 19:43.
RAFA91 вне форума   Ответить с цитированием
Старый 02.09.2015, 13:36   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Ты умеешь работать с HEX редакторами? Если да - открой файл после записи и посмотри. Я думаю там не будет символа 0.

И еще. Попрошу тебя вставляемые рисунки ужимать от лишней канвы. Не надо пожалуйста простыни вставлять.
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 02.09.2015, 13:45   #13
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

тогда поставлю искусственно этот символ.
_________________________

нашел такую функцию как fread().

по описанию не сильно вкурил как она работает

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

что это за элементы m и n ?
Миниатюры
Нажмите на изображение для увеличения
Название: Б.JPG
Просмотров: 125
Размер:	69.3 Кб
ID:	76818  
RAFA91 вне форума   Ответить с цитированием
Старый 02.09.2015, 13:52   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,521
По умолчанию

По fputs:
http://www.cplusplus.com/reference/cstdio/fputs/
Цитата:
The function begins copying from the address specified (str) until it reaches the terminating null character ('\0'). This terminating null-character is not copied to the stream.
по fread - функция для чтения n элементов, размера m, чего там может быть непонятного - я не знаю.
pu4koff вне форума   Ответить с цитированием
Старый 02.09.2015, 14:00   #15
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
По fputs:
[url]h

по fread - функция для чтения n элементов, размера m, чего там может быть непонятного - я не знаю.

размер определять исходя из чего ?

эта функция для чтения структур ?

к примеру в файл положил это Hello Anya

нужно считать один элемент размером 5 байт.

char b[20];

fread(b,5,1,f1); // это вообще корректно ?

Последний раз редактировалось RAFA91; 02.09.2015 в 14:10.
RAFA91 вне форума   Ответить с цитированием
Старый 02.09.2015, 14:13   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Да. Вполне корректно. Пример тут: http://www.programmersforum.ru/showthread.php?t=105501
Код:
fread(&CurRec,sizeof(rec),1,БД);
Считывается 1 блок размером sizeof(rec)
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 02.09.2015, 14:28   #17
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Код:
fread(b,5,1,f1);
// это лажа.

тип char не может быть 5 байт
RAFA91 вне форума   Ответить с цитированием
Старый 02.09.2015, 14:37   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Код:
fread(b,5,1,f1);
// это лажа.

тип char не может быть 5 байт
у вас b, это не char.
все верно написано. вы читаете 5 байт, которые займут 5 первых char элементов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 02.09.2015, 15:09   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Не, ну туда подается указатель )
Если b это char *b то почему бы нет.
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 02.09.2015, 15:10   #20
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас b, это не char.
все верно написано. вы читаете 5 байт, которые займут 5 первых char элементов.
Код:
fread(b,1,5,f1);
так намного красивее

покурил функцию fseek();

параметр n смещает позицию указателя в файле только вперед.

как ее смещать назад ?

Код:
fseek(f1,n,1);
на n вперед от текущей

может

-n прокатит ?
Миниатюры
Нажмите на изображение для увеличения
Название: Б.JPG
Просмотров: 127
Размер:	46.9 Кб
ID:	76823  
RAFA91 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами на СИ++ Config Помощь студентам 0 21.01.2014 14:36
Работа с файлами apeorin Общие вопросы C/C++ 0 05.12.2012 20:29


01:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.