Datei mit C einlesen ( gelöst )

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
frodo
Beiträge: 342
Registriert: 08.06.2007 09:16:15
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Burnley
Kontaktdaten:

Datei mit C einlesen ( gelöst )

Beitrag von frodo » 26.01.2010 23:58:39

Moin, Moin

ich versuche mich ein bissel mit C.

Ich komme damit einfach nicht weiter:

Mein Code:

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 20

int main()


{

char eingabe[20];

FILE *file;

file = fopen("datei.txt", "r");
    
    if(NULL == file) {
    printf("Datei \"datei.txt\" nicht gefunden!\n");
    return EXIT_FAILURE;
}

printf ("Bitte geben das Suchwort an: ");
fgets(eingabe, MAX, stdin);

if (strstr(file, eingabe))

puts ("String gefunden\n");

else

puts ("String nicht gefunden\n");
}
Das sollte doch eigentlich passen?????


Grüße
Zuletzt geändert von frodo am 31.01.2010 00:36:54, insgesamt 1-mal geändert.
VDR: MSI C847MS-E33 onboard. Intel® Celeron® 847 | GT520 | VDR 2.1.6 | Stable | Kernel 3.15.7
Notebook: Lenovo G530 | Wheezy| icewm | Kernel 3.2.0-4-686

Benutzeravatar
TRex
Moderator
Beiträge: 8339
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Datei mit C einlesen

Beitrag von TRex » 27.01.2010 00:11:30

ohne strstr nachzulesen: bist du sicher, an der Stelle einfach die Datei übergeben zu können? Das kriegt nichtmal Java hin.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
frodo
Beiträge: 342
Registriert: 08.06.2007 09:16:15
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Burnley
Kontaktdaten:

Re: Datei mit C einlesen

Beitrag von frodo » 27.01.2010 01:05:11

Moin, Moin,
ohne strstr nachzulesen: bist du sicher, an der Stelle einfach die Datei übergeben zu können? Das kriegt nichtmal Java hin.
Nein bin ich nicht, bin halt mit C noch am Anfang.

Evtl. will oder kann mir keiner helfen, da das mehr ein Linuxforum ist statt ein Forum für Programmieranfänger.

Weiß jemand von euch eine gute Anlaufstelle????


Grüße
VDR: MSI C847MS-E33 onboard. Intel® Celeron® 847 | GT520 | VDR 2.1.6 | Stable | Kernel 3.15.7
Notebook: Lenovo G530 | Wheezy| icewm | Kernel 3.2.0-4-686

Benutzeravatar
gOtNoPhEaR
Beiträge: 863
Registriert: 17.04.2004 15:49:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Gau-Algesheim
Kontaktdaten:

Re: Datei mit C einlesen

Beitrag von gOtNoPhEaR » 27.01.2010 02:19:53

Ich kann mich da grob erinnern mit fread aus ner Datei zu lesen.
*file ist nur ein Pointer (Filedeskriptor) der irgendwo in deine Datei zeigt.

Das ist hier ist ein Schnipsel aus dem Studium um ein Bild aus einer Datei zu lesen. Hoffe du kannst damit was anfangen. Ist wohl auch ein wenig C++ mit dabei ;)

Code: Alles auswählen

// ****************** Datei öffnen *********************
Image12Bit* OpenCTPic(long int idx) {
  fpos_t File_Pos;
   
  // Datei öffnen
  FILE* pFile = fopen("../Aorta.img", "rb");
  if(!pFile) {
	cout << "error opening file" << endl;
    return NULL;
  }
  
  // Speicher für zu lesendes Bild allozieren
  Image12Bit* pImg = NULL;
  pImg = (Image12Bit*)malloc(sizeof(Image12Bit));
  if(!pImg) {
	cout << "memory allocation error" << endl;
	return NULL;
  }
  
// Pointer der Datei auf idx setzen
  fgetpos ( pFile, &File_Pos);	//Dateiposition einlesen
  fseek ( pFile, (idx * sizeof (Image12Bit)), SEEK_SET ); // Setzen des Filepointers auf idx ausgehend von Anfang der Datei
  fread(pImg, 1, sizeof(Image12Bit), pFile);
      
  fclose(pFile);
  return pImg;
}
Greetz, gOtNoPhEaR

OS: Debian/testing amd64

yeti

Re: Datei mit C einlesen

Beitrag von yeti » 27.01.2010 03:38:29

Leute... nicht rumrätseln...

strstr() sucht einen String in einem String.

Tippe er: man 3 strstr

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Datei mit C einlesen

Beitrag von GoKi » 27.01.2010 10:07:36

Ich gehe mal von einem GNU System aus, dann könnte man z.B. folgendes machen, um die Datein zeilenweise nach dem Suchwort abzusuchen: NoPaste-Eintrag34226
MfG GoKi
:wq

Benutzeravatar
frodo
Beiträge: 342
Registriert: 08.06.2007 09:16:15
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Burnley
Kontaktdaten:

Re: Datei mit C einlesen

Beitrag von frodo » 27.01.2010 11:03:07

Moin, Moin
Ich gehe mal von einem GNU System aus, dann könnte man z.B. folgendes machen, um die Datein zeilenweise nach dem Suchwort abzusuchen: NoPaste-Eintrag 34226
Danke für die Mühe :-)

Da habe ich ja noch eine ganze Menge zu lernen.

Die ganzen C - Tutorials die ich mir angeschaut haben, waren alle ziemlich Allgemein, könnt ihr mir eine paar gute Links nennen, die mehr auf GNU Systeme ausgerichtet sind?


Grüße Frank
VDR: MSI C847MS-E33 onboard. Intel® Celeron® 847 | GT520 | VDR 2.1.6 | Stable | Kernel 3.15.7
Notebook: Lenovo G530 | Wheezy| icewm | Kernel 3.2.0-4-686

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Re: Datei mit C einlesen

Beitrag von chabayo » 27.01.2010 14:57:11

Ich meine...wenn du C lernen willst ist es erst mal nicht wichtig ob nun mit glib oder was anderes.

Du verwendest fuer den Anfang sowieso meist die stdlib, und das ist ueberall gleich.

Der Fehler der dir hier passiert ist erscheint mir als Fluechtigkeitsfehler, das Programm haette auch laufen koennen jedoch nicht mit dem gewuenschten Resultat. Der Compiler haette zwar sicherlich selbst dann eine Fehlermeldung ausgegeben, aber manchmal kommt man da nicht drumrum.

Es ist nun mal so das man einer Funktion den Datentyp uebergeben sollte der auch von ihr erwartet wird, machst du das nicht, also castest du die Variable, anstaendig, dann bist du schon mal kein reiner Anfaenger mehr ;) ... aber das kommt relativ schnell.

Das, fuer mich auffaellig, einfache an C ist/war der Unterschied eine Variable mit und ohne & als Prefix anzusprechen, dazu z. B. char [], und noch eine struct - hast du dir das schon mal klar differenziert (was einfacher ist wenn du etwas Verstaendnis fuer Assembler und/oder Maschinensprache dein eigen nennst) ist man schon auf einem guten weg - mit grossen spezialisierten Bibliotheken zu Programmieren ist eine Uebungsfrage die zu speziellen Erfahrungen fuehrt und dadurch, wenn man sie beherrscht, zum Spezialisten eines bestimmten Bereiches macht.

...oder?
Watt about the non-digital!?

Benutzeravatar
frodo
Beiträge: 342
Registriert: 08.06.2007 09:16:15
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Burnley
Kontaktdaten:

Re: Datei mit C einlesen

Beitrag von frodo » 30.01.2010 06:54:19

Das, fuer mich auffaellig, einfache an C ist/war der Unterschied eine Variable mit und ohne & als Prefix anzusprechen, dazu z. B. char [], und noch eine struct - hast du dir das schon mal klar differenziert (was einfacher ist wenn du etwas Verstaendnis fuer Assembler und/oder Maschinensprache dein eigen nennst) ist man schon auf einem guten weg
Also C scheint IMHO einfacher als C++ zu sein, aber ich denke früher oder später komme ich an
C++ nicht vorbei.

Also wäre es kein Fehler sich mal Assembler anzuschauen????

Grüße
VDR: MSI C847MS-E33 onboard. Intel® Celeron® 847 | GT520 | VDR 2.1.6 | Stable | Kernel 3.15.7
Notebook: Lenovo G530 | Wheezy| icewm | Kernel 3.2.0-4-686

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Re: Datei mit C einlesen

Beitrag von chabayo » 30.01.2010 08:55:29

Jaein.

Ich hatte mir mal das Buch http://www.amazon.de/Prozessor-Programm ... 3446189165 gekauft weil ich mich fuer Assembler interessierte. Es ist/war sehr interessant um gewisses Verstaendnis aufzubauen was bestimmte Grundlagen betrifft - aber die sind zum Programmieren nicht unbedingt notwendig.

Mir ging es nur darum dahingehegend eine Verbindung aufzubauen, das sich hoehere Programmiersprachen, wie z. B. PHP, oder auch JAVA und Python, etwas abstrakter darstellen. Das gleiche gilt damit auch fuer OOP.

Wenn du C++ erlernen moechtest sehe ich eigentlich keinen Grund wieso du dich zu sehr auf C einlassen solltest - ich taete sogar empfehlen zuerst C++ zu lernen, und sich dann C zuzuwenden; nutze den anfaenglichen Uebermut dazu dich dem zu widmen das dir eigentlich am meisten am Herzen liegt. Das kann jetzt sein, ein Programm zu schreiben das dir eine Aufgabe erledigt, nach deinen Methoden. Oder, zu ueberlegen wie du ein Programm geschrieben haettest wenn du wuesstest wie der Prozessor mit deinen Worten umgeht. Klar?
Watt about the non-digital!?

Benutzeravatar
frodo
Beiträge: 342
Registriert: 08.06.2007 09:16:15
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Burnley
Kontaktdaten:

Re: Datei mit C einlesen

Beitrag von frodo » 30.01.2010 17:08:27

Wenn du C++ erlernen moechtest sehe ich eigentlich keinen Grund wieso du dich zu sehr auf C einlassen solltest - ich taete sogar empfehlen zuerst C++ zu lernen, und sich dann C zuzuwenden;
Ich habe vor einiger Zeit das Buch C++ für Dummies geschenkt bekommen, dieses Buch setzt aber C Kenntnisse voraus. Mache ich mit diesen Buch einen guten Anfang oder habt ihr eine bessere Empfehlung für mich?

Grüße
VDR: MSI C847MS-E33 onboard. Intel® Celeron® 847 | GT520 | VDR 2.1.6 | Stable | Kernel 3.15.7
Notebook: Lenovo G530 | Wheezy| icewm | Kernel 3.2.0-4-686

kryzir
Beiträge: 178
Registriert: 22.09.2007 22:11:33

Re: Datei mit C einlesen

Beitrag von kryzir » 30.01.2010 20:04:46

"C++ von A bis Z" von Jürgen Wolf [1]
[1]http://www.galileocomputing.de/katalog/ ... telID-2156

Benutzeravatar
gOtNoPhEaR
Beiträge: 863
Registriert: 17.04.2004 15:49:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Gau-Algesheim
Kontaktdaten:

Re: Datei mit C einlesen

Beitrag von gOtNoPhEaR » 01.02.2010 11:45:24

frodo hat geschrieben:
Wenn du C++ erlernen moechtest sehe ich eigentlich keinen Grund wieso du dich zu sehr auf C einlassen solltest - ich taete sogar empfehlen zuerst C++ zu lernen, und sich dann C zuzuwenden;
Ich habe vor einiger Zeit das Buch C++ für Dummies geschenkt bekommen, dieses Buch setzt aber C Kenntnisse voraus. Mache ich mit diesen Buch einen guten Anfang oder habt ihr eine bessere Empfehlung für mich?

Grüße
C++ für Dummies hat mir im Studium zu ner 1,3 in der Klausur verholfen. Aber es gehörten auch andere Nachschlagewerke dazu, aber ich fand das Buch gut zu lesen und die wichtigsten Dinge sind meiner Meinung nach gut erklärt.
Greetz, gOtNoPhEaR

OS: Debian/testing amd64

Antworten