hallo,
ich habe hier eine Funktion erstellt und mein Compiler gibt einen Fehler aus.
sstudent.h
und mein sstudent.cpp
und der Fehler:
ich hoffe es kann jemand helfen. danke im vorraus
gruß
ich habe hier eine Funktion erstellt und mein Compiler gibt einen Fehler aus.
sstudent.h
Code:
#ifndef _sstudentH_
#define _sstudentH_
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <vector>
using namespace std;
class sstudent {
private:
static GtkWidget *window, *table, *text, *label, *image, *entry, *textbox;
static fstream students;
public:
sstudent();
};
#endif
und mein sstudent.cpp
Code:
#include "sstudent.h"
GtkWidget *sstudent::window, *sstudent::table, *sstudent::text, *sstudent::label, *sstudent::image, *sstudent::entry, *sstudent::textbox;
fstream sstudent::students;
sstudent::sstudent() {
string name;
cout << endl;
cout << " Bitte geben Sie zu aller Erst nur den Nachnamen des Schuelers an,\n";
cout << " den Sie suchen moechten, im 2. Durchlauf koennen Sie dann die\n";
cout << " ID des Schuelers angeben, um eine nur seine Daten zu erhalten.\n\n";
cout << " Nachname des Schuelers: ";
cin >> name;
students.open("db/students.txt");
vector<string> zeilen;
while(! students.eof())
{
string z;
// read line
students >> z;
// but into vector
zeilen.push_back(z);
}
for(size_t i=0; i<zeilen.size(); ++i)
{
if(zeilen[i] == name)
{
cout << " Schuelerdaten:\n\n";
cout << " ID: \t\t\t" << zeilen[i-2] << endl;
cout << " Vorname: \t\t" << zeilen[i-1] << endl;
cout << " Nachname: \t\t" << zeilen[i] << endl;
cout << " PLZ: \t\t\t" << zeilen[i+1] << endl;
cout << " Ort: \t\t\t" << zeilen[i+2] << endl;
cout << " =====================================\n";
}
}
students.close();
students.open("db/students.txt");
string id;
cout << endl;
cout << " ID des Schuelers: ";
cin >> id;
while(! students.eof())
{
string z;
// read line
students >> z;
// but into vector
zeilen.push_back(z);
}
for(size_t i=0; i<zeilen.size(); ++i)
{
if(zeilen[i] == id)
{
cout << " Schuelerdaten:\n\n";
cout << " ID: \t\t\t" << zeilen[i] << endl;
cout << " Vorname: \t\t" << zeilen[i+1] << endl;
cout << " Nachname: \t\t" << zeilen[i+2] << endl;
cout << " PLZ: \t\t\t" << zeilen[i+3] << endl;
cout << " Ort: \t\t\t" << zeilen[i+4] << endl;
cout << " Strasse: \t\t" << zeilen[i+5] << endl;
cout << " Hausnummer: \t\t" << zeilen[i+6] << endl;
cout << " Telefonnummer: \t" << zeilen[i+7] << endl;
cout << " Tutor: \t\t" << zeilen[i+8] << endl;
cout << " =====================================\n";
}
}
students.close();
}
static GtkWidget *student_search_box()
{
GtkWidget *box;
box = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 2);
table = gtk_table_new(4, 4, FALSE);
label = gtk_label_new ("Geben Sie hier den Nachnamen des gesuchten Schülers ein, um seine ID zu ermitteln");
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL , GTK_FILL, 2, 2);
label = gtk_label_new ("Nachname");
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL , GTK_FILL, 2, 2);
label = gtk_entry_new ();
gtk_table_attach(GTK_TABLE(table), label, 1, 3, 1, 2 GTK_FILL , GTK_FILL, 2, 2);
label = xpm_label_box ("",Suchen);
gtk_table_attach(GTK_TABLE(table), label, 3, 4, 1, 2, GTK_FILL , GTK_FILL, 2, 2);
gtk_box_pack_start (GTK_BOX (box), table, FALSE, FALSE, 3);
gtk_widget_show (table);
return box;
}
static GtkWidget *xpm_label_box( gchar *xpm_filename, gchar *label_text )
{
GtkWidget *xbox;
GtkWidget *xlabel;
GtkWidget *ximage;
xbox = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (xbox), 2);
ximage = gtk_image_new_from_file (xpm_filename);
xlabel = gtk_label_new (label_text);
gtk_box_pack_start (GTK_BOX (xbox), ximage, FALSE, FALSE, 3);
gtk_box_pack_start (GTK_BOX (xbox), xlabel, FALSE, FALSE, 3);
gtk_widget_show (ximage);
gtk_widget_show (xlabel);
return xbox;
}
und der Fehler:
Code:
sstudent.h:15: Fehler: ISO-C++ verbietet Deklaration von »GtkWidget« ohne Typ
sstudent.h:15: Fehler: expected »;« before »*« token
sstudent.h:15: Fehler: ISO-C++ verbietet Deklaration von »GtkWidget« ohne Typ
sstudent.h:15: Fehler: expected »;« before »*« token
sstudent.cpp:3: Fehler: expected constructor, destructor, or type conversion before »*« token
sstudent.cpp:81: Fehler: expected initializer before »*« token
sstudent.cpp:101: Fehler: expected initializer before »*« token
ich hoffe es kann jemand helfen. danke im vorraus
gruß