【问题标题】:Gtk+ File handling with CGtk+ 用 C 处理文件
【发布时间】:2013-10-17 11:15:19
【问题描述】:

有谁知道使用 GTK 处理文件。我需要以“w+”模式打开一个文件并写入它。我不知道 GTK 中是否存在文件处理。下面是我需要的 GTK 格式的示例“C”程序。

#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 代码。
  • 谢谢您的回答! :)
  • GTK+ 程序是纯 C 程序的超集,所以如果上面的代码有效,我看不出有任何改变它的理由。仅当您需要与主 GTK+ 循环进行 I/O 集成时,Gio 才有用。

标签: c gtk file-handling


【解决方案1】:

我确定您是指 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吗?)了解更多详情

【讨论】:

    【解决方案2】:

    如上所述,GTK 用于用户界面,您的代码示例没有图形用户界面。但是,您可以看看 GLib,它是支持 GTK 的底层库。 有file utilities的功能,有利于跨系统的移植,还有可移植的I/O channels

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 2022-11-28
      • 2011-05-13
      • 1970-01-01
      相关资源
      最近更新 更多