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

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

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

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

Ответ
 
Опции темы
Старый 02.09.2015, 18:35   #21
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
Код:
fseek(f1,n,1);
на n вперед от текущей

может

-n прокатит ?
-n прокатит, только если случано перейдете в позицию -1, то у Вас файл будет максимального размера.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума   Ответить с цитированием
Старый 02.09.2015, 18:40   #22
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Не могу понять почему на экран получаю левые значения

Код:
int main()

{      
        int buffer[10];
        FILE *f1 = fopen("C:\\Test_2.txt","w");
        for (int i=0;i<10;i++) fprintf(f1,"%d ",i+20);
         fclose(f1);
         f1 = fopen("C:\\Test_2.txt","r");
         fread(buffer, sizeof(int), 10, f1); 
         for (i=0;i<10;i++)  printf("%d ",buffer[i]);
         fclose(f1);

        getch();
        return 0;
}
Изображения
 
RAFA91 вне форума   Ответить с цитированием
Старый 02.09.2015, 18:48   #23
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

fread() используется не для текстовых файлов.
Из текстовиков считывай скажем через fscanf().
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 02.09.2015, 18:58   #24
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

как с помощью ее в файл запихнуть структуру ?
RAFA91 вне форума   Ответить с цитированием
Старый 02.09.2015, 19:02   #25
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

или зыписывайте не через:
Код:
fprintf(f1,"%d ",i+20);
а через:
Код:
fwrite(&value, sizeof(int), 1, f1);
Цитата:
Сообщение от RAFA91 Посмотреть сообщение
как с помощью ее в файл запихнуть структуру ?
Через fread и fwrite, или интересует через fprintf и fscanf?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

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

Цитата:
как с помощью ее в файл запихнуть структуру ?
Стесняюсь спросить, а мою ссыль ты спецом проигнорил?
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 04.09.2015, 15:27   #27
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Добрый день!

В файл решил записать 3 строки "Morning","Day","Evening"

чтобы разделять строки, решил поставить после запист каждой символ '\n'

Нужно ли это делать для разделения строк или это делается с помощью

символа '\0' ?

При чтении строк оказалось, что этот символ привязывается к строки

"Morning\n","Day\n","Evening"

При записи последней строки символ '\n' не ставил

Код:
void main()

{

	char *s[3]={"Morning","Day","Evening"}; 
    char str[30];
	FILE *f = fopen("C:\\Test_2.txt","w");
	for (int i=0;i<3;i++) 
	{
		fputs(s[i],f);
		if (i == 2) break;
		fputc('\n',f);
	}
	fclose(f);
	f = fopen("C:\\Test_2.txt","r");
	while (!feof(f))
	{
		fgets(str,30,f);
		printf("%s",str);
	}
	fclose(f);
	getch();
}
RAFA91 вне форума   Ответить с цитированием
Старый 04.09.2015, 16:13   #28
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

\0 это символ не для текст файла по сути. это терминал строки.
\n перенос строки
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 04.09.2015, 17:00   #29
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
\0 это символ не для текст файла по сути. это терминал строки.
\n перенос строки

так что тогда нужно ставить для разделения строк в файле?


меня больше интересует другой вопрос.

в файл пишу 2 структуры

Код:
i = fwrite(Human_1,sizeof(human),2,f);
размер каждой 24 байта

Код:
printf("\nsizeof(human) = %d\n",sizeof(human));
функция fwrite() должна возвратить записанное к-во байт.

в данном случае 2*24 = 48 , а возвращает только число 2 )))

Подскажите пожалуйста почему так ?

Код:
struct human

{
	int age;
	char name[20];
};

void main()

{
	int i;
	FILE *f;
	human *Human_1 = new human[2];
	human *Human_2 = new human[2];
	Human_1[0].age = 23;
	strcpy(Human_1[0].name,"Oleg");
	Human_1[1].age = 54;
	strcpy(Human_1[1].name,"Vitya");
	f = fopen("C:\\Test_2.txt","w");
	i = fwrite(Human_1,sizeof(human),2,f);
	printf("\ni = %d\n",i);
	printf("\nsizeof(human) = %d\n",sizeof(human));
	fclose(f);
	f = fopen("C:\\Test_2.txt","r");
	i = fread(Human_2,sizeof(human),2,f);
	printf("\ni = %d\n",i);
	fclose(f);
	for (i=0;i<2;i++) printf("\n%d %s\n",Human_2[i].age,Human_2[i].name);
	

	getch();
}
Изображения
 

Последний раз редактировалось RAFA91; 04.09.2015 в 17:21.
RAFA91 вне форума   Ответить с цитированием
Старый 04.09.2015, 17:18   #30
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

Цитата:
Сообщение от 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


17:58.


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