DWORD dwBW;
char buf[]="write me!";
HANDLE hFile=CreateFile("c:\\1.txt",GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
DWORD dwSize=GetFileSize(hFile,NULL);
SetFilePointer(hFile,dwSize,NULL,FILE_BEGIN);
WriteFile(hFile,&buf,sizeof(buf),&dwBW,NULL);
CloseHandle(hFile);
Запись в файл
Подскажите как правильно дописывать в файл (хотя бы текстовые строки)? Т.е. что бы предыдущие данные не терялись и лишние строки не плодились?
или
...=fopen("file.txt","rt+");
fseek(f,0,2);
или
...=fopen("file.binary","rb+");
fseek(f,0,2);
Код:
#include <iostream>
#include <fstream>
using namespace std;
fstream file;
file.open( "filename.txt", ios_base::out | ios_base::app);
fputs("\nI an\m very stuped computer!", f); //Не помню какие тут параметры
fclose(f);
fputs("\nI an\m very stuped computer!", f); //Не помню какие тут параметры
fclose(f);[/QUOTE]
\nI an\m - это зачечм?
FILE *f = fopen("file.txt", "at");
fputs("\nI am very stuped computer!", f);
fprintf(f, "\nА еще можно файлы класть так=)");
fclose(f);
Код:
DWORD dwBW;
char buf[]="write me!";
HANDLE hFile=CreateFile("c:\\1.txt",GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
//DWORD dwSize=GetFileSize(hFile,NULL);
SetFilePointer(hFile, 0, NULL,FILE_END);
WriteFile(hFile,&buf,sizeof(buf),&dwBW,NULL);
CloseHandle(hFile);
char buf[]="write me!";
HANDLE hFile=CreateFile("c:\\1.txt",GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
//DWORD dwSize=GetFileSize(hFile,NULL);
SetFilePointer(hFile, 0, NULL,FILE_END);
WriteFile(hFile,&buf,sizeof(buf),&dwBW,NULL);
CloseHandle(hFile);
Типа того.
Спасибо, но хотелось бы на чистом С++.
Если на чистом С++ (а не в стиле С), то например через классы файловых потоков, как уже предлагал Bosheit
Именно так! А если код должен быть чисто сишным, то существуют такие crt'шные функции _open, _read, _write, _closeall, и т.д.