У вас была implements ActionListener
часть кода, когда вы получили ошибку? Эта ошибка возникает, когда у вас нет этой части.
Этот код, который вы разместили, компилируется без ошибок.
Я предполагаю, что надлежащий ответ - это Kevin. Но вот взлом, чтобы сделать это с ФАЙЛОМ *. Обратите внимание, если размер буфера (здесь 100000) является слишком маленьким затем, потерю данных поскольку это выписано, когда буфер сбрасывается. Кроме того, если программа называет сброс (), Вы теряете данные.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
FILE *f = fopen("/dev/null", "w");
int i;
int written = 0;
char *buf = malloc(100000);
setbuffer(f, buf, 100000);
for (i = 0; i < 1000; i++)
{
written += fprintf(f, "Number %d\n", i);
}
for (i = 0; i < written; i++) {
printf("%c", buf[i]);
}
}
Вы могли использовать метод CStr TiXMLPrinter, который указывает документация:
TiXmlPrinter полезен, когда Вы должны:
- Печать к памяти (особенно в режиме не-STL)
- форматирование Управления (окончания строки, и т.д.)
fmemopen может создавать ФАЙЛ из буфера, имеет ли это какой-то смысл для вас?
Я написал простой пример, как создать ФАЙЛ в памяти:
#include <unistd.h>
#include <stdio.h>
int main(){
int p[2]; pipe(p); FILE *f = fdopen( p[1], "w" );
if( !fork() ){
fprintf( f, "working" );
return 0;
}
fclose(f); close(p[1]);
char buff[100]; int len;
while( (len=read(p[0], buff, 100))>0 )
printf(" from child: '%*s'", len, buff );
puts("");
}