D
deadpickle
I'm very new to C and am trying to read a file that contains integers
and character. This file has one line but that line is 800000+
columns. Very large. When I use the code below I get the error:
segmentation fault
any ideas?
gcc -Wall -g goo_0.01.c -o /home/deadpickle/Desktop/goo_0.01 `pkg-
config --cflags gtk+-2.0 goocanvas` `pkg-config --libs gtk+-2.0
goocanvas`
#include <gtk/gtk.h>
#include <goocanvas.h>
#include <stdio.h>
static gboolean delete_event(GtkWidget *widget,GdkEvent
*event,gpointer data)
{
g_print ("delete event occurred\n");
return FALSE;
}
static void destroy( GtkWidget *widget,gpointer data )
{
gtk_main_quit ();
}
int main( int argc,char *argv[] )
{
//~ Type Declaration
GtkWidget *window;
GtkWidget *scwin;
GtkWidget *vbox;
GtkWidget *hbox;
GtkObject *adj;
GtkWidget *zoom_spin;
GtkWidget *zoom_label;
GtkWidget *canvas;
FILE *infile;
int i;
char numbers[1];
//~ gtk_init
gtk_init (&argc, &argv);
//~ New Declarations
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
scwin = gtk_scrolled_window_new(NULL,NULL);
vbox = gtk_vbox_new(FALSE,5);
hbox = gtk_hbox_new(FALSE,5);
adj = gtk_adjustment_new(100, 10, 200, 10, 0, 0);
zoom_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj),0,0);
zoom_label = gtk_label_new("Zoom: ");
canvas = goo_canvas_new();
//~ Signals
g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK
(delete_event), NULL);
g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (destroy),
NULL);
//~ Properties
gtk_container_set_border_width(GTK_CONTAINER(window),10);
gtk_window_set_default_size(GTK_WINDOW(window),800,600);
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
(scwin),GTK_POLICY_ALWAYS,GTK_POLICY_ALWAYS);
g_object_set(G_OBJECT(canvas),"background-color","black",NULL);
//~ Adding and Packing
gtk_container_add(GTK_CONTAINER(window),vbox);
gtk_container_add(GTK_CONTAINER(scwin),canvas);
gtk_box_pack_start(GTK_BOX(hbox),zoom_label,FALSE,FALSE,1);
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,1);
gtk_box_pack_start_defaults(GTK_BOX(vbox),scwin);
gtk_box_pack_start(GTK_BOX(hbox),zoom_spin,FALSE,FALSE,1);
//~ Read shapefile file
infile = fopen("county_colorado.gis","r");
while(!feof(infile)) {
fscanf(infile, "%c", &numbers);
i++;
printf("%c", numbers);
}
fclose(infile);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
and character. This file has one line but that line is 800000+
columns. Very large. When I use the code below I get the error:
segmentation fault
any ideas?
gcc -Wall -g goo_0.01.c -o /home/deadpickle/Desktop/goo_0.01 `pkg-
config --cflags gtk+-2.0 goocanvas` `pkg-config --libs gtk+-2.0
goocanvas`
#include <gtk/gtk.h>
#include <goocanvas.h>
#include <stdio.h>
static gboolean delete_event(GtkWidget *widget,GdkEvent
*event,gpointer data)
{
g_print ("delete event occurred\n");
return FALSE;
}
static void destroy( GtkWidget *widget,gpointer data )
{
gtk_main_quit ();
}
int main( int argc,char *argv[] )
{
//~ Type Declaration
GtkWidget *window;
GtkWidget *scwin;
GtkWidget *vbox;
GtkWidget *hbox;
GtkObject *adj;
GtkWidget *zoom_spin;
GtkWidget *zoom_label;
GtkWidget *canvas;
FILE *infile;
int i;
char numbers[1];
//~ gtk_init
gtk_init (&argc, &argv);
//~ New Declarations
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
scwin = gtk_scrolled_window_new(NULL,NULL);
vbox = gtk_vbox_new(FALSE,5);
hbox = gtk_hbox_new(FALSE,5);
adj = gtk_adjustment_new(100, 10, 200, 10, 0, 0);
zoom_spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj),0,0);
zoom_label = gtk_label_new("Zoom: ");
canvas = goo_canvas_new();
//~ Signals
g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK
(delete_event), NULL);
g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (destroy),
NULL);
//~ Properties
gtk_container_set_border_width(GTK_CONTAINER(window),10);
gtk_window_set_default_size(GTK_WINDOW(window),800,600);
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
(scwin),GTK_POLICY_ALWAYS,GTK_POLICY_ALWAYS);
g_object_set(G_OBJECT(canvas),"background-color","black",NULL);
//~ Adding and Packing
gtk_container_add(GTK_CONTAINER(window),vbox);
gtk_container_add(GTK_CONTAINER(scwin),canvas);
gtk_box_pack_start(GTK_BOX(hbox),zoom_label,FALSE,FALSE,1);
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,1);
gtk_box_pack_start_defaults(GTK_BOX(vbox),scwin);
gtk_box_pack_start(GTK_BOX(hbox),zoom_spin,FALSE,FALSE,1);
//~ Read shapefile file
infile = fopen("county_colorado.gis","r");
while(!feof(infile)) {
fscanf(infile, "%c", &numbers);
i++;
printf("%c", numbers);
}
fclose(infile);
gtk_widget_show_all(window);
gtk_main();
return 0;
}