Gtk+与C的文件处理

3

有人知道如何在GTK中进行文件处理吗?我需要以“w+”模式打开文件并向其中写入内容。我不知道GTK中是否存在文件处理功能。下面是一个样例'C'程序,我需要将其转换为GTK格式。

#include <stdio.h>

int main(int argc, char *argv[]) {

 int a = 5;
 float b = 3.14;
 FILE *fp;

 fp = fopen( "test.txt", "w+" );
 fprintf( fp, "  %d   %f", a, b ); 
 fwrite(----);
 fclose( fp );
}

GTK是一个图形工具包。在代码中你没有进行任何图形操作。那只是普通的C代码。 - Marc B
GTK+程序是普通C程序的超集,因此如果上面的代码可以工作,我不认为有任何改变它的理由。只有当您需要与主GTK+循环进行I/O集成时,Gio才会有用。 - ntd
2个回答

9
我确定你是指 GIO。
#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
    gtk_init(&argc,&argv);

    GFile *file=g_file_new_for_path("test.txt");
    GFileOutputStream *output=g_file_replace(
                file,NULL,FALSE,
                G_FILE_CREATE_NONE,
                NULL,NULL);
    gint a=5;
    gfloat  b=3.14;
    gchar *buf=g_strdup_printf(" %d %f",a,b);
    g_output_stream_write(G_OUTPUT_STREAM(output),
                buf,strlen(buf),NULL,NULL);
    /* ----- */
    g_output_stream_close(G_OUTPUT_STREAM(output),NULL,NULL);
    g_free(buf);
    g_object_unref(output);
    g_object_unref(file);
    return 0;
}

我不会解释任何函数,请查看GIO参考手册(您知道Devhelp吗?)以获取更多细节。


0
如上所述,GTK用于用户界面,而您的代码示例没有图形用户界面。但是,您可以看一下GLib,这是支持GTK的底层库。
文件实用程序函数,适用于跨系统的可移植性,以及可移植的I/O通道

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接