powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Одновременная запись и чтение в файл
4 сообщений из 4, страница 1 из 1
Одновременная запись и чтение в файл
    #32355780
Стыдно :)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int main()
{
	FILE *from;
	char f1[MAX_PATH];
	
	printf( "file: " ); scanf( "%s" , f1);

	//_fmode = _O_BINARY;
	if (!(from = fopen(f1,  "r+" ))) error("Can't open file", f1);
	
	char c;
	while((c=fgetc(from)) != EOF) fputc(' ', from);
	fclose(from);
	return  0 ;
}

По идее, должнен получится текст из буковок, разделенных пробелами. Ан нет, ничего не выходит, совсем за@#$%ся. Помогите пожалуйста.
...
Рейтинг: 0 / 0
Одновременная запись и чтение в файл
    #32355919
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учите матчасть! :)

when you switch between reading and writing, there must be an intervening fflush , fsetpos , fseek , or rewind operation.
MSDN

Например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    char c =  0 ;
    do
    {
        c = fgetc(from);
        if(c == EOF)
            break;
        fseek(from, 0 ,SEEK_CUR);
        fputc(' ', from);
        fseek(from, 0 ,SEEK_CUR);
    }
    while(c != EOF);
Я мог тут нахомутать, но вроде работает. Главное — fseek() после fgetc() и после fputc().
...
Рейтинг: 0 / 0
Одновременная запись и чтение в файл
    #32355931
Стыдно :)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное.

Учите матчасть! :)
Имя, указанное в поле 'Автор:', соответсвует моим познаниям
...
Рейтинг: 0 / 0
Одновременная запись и чтение в файл
    #32355974
Cactus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А блокировка?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
   fh = _sopen(  "test.txt" , _O_RDWR, _SH_DENYNO, _S_IREAD | _S_IWRITE );
   while (!_eof(fh)){
	  res = _locking( fh, LK_NBLCK, 1L );
	  res = _read( fh, buffer, 1L);
	  res = _locking( fh, LK_UNLCK, 1L );



	  res = _locking( fh, LK_NBLCK, 1L );
	  res = _write( fh,  "1 ", 1L);
	  res = _locking( fh, LK_UNLCK, 1L );
   }
   _close( fh );
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Одновременная запись и чтение в файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]