Aufgabe ausem Studium, Verständis frage



  • Hallo zusammen,
    ich bin der neue ^^

    Ich bin im mom an der FH Köln als Informatikstudent, bis jetzt war alles recht locker und gut zu schaffen.

    Aer an der Aufgabe 2. in diesem PDF scheitere ich zurzeit.

    Zusammengefasst: Ich soll Zahlen aus einer Datei einlesen und dann Zeilenweise Ausgeben, immer 7 Zahlen in einer Zeile, dies ist auch kein Problem. Mein Problem ist es einfach die Zahlen in ein Array zu schreiben.

    Bisher habe ich es nur geschaft die Datei einzulesen und dann das Zeichen auszugeben. Alle Versuche die Zeichen in das Array in zu Kopieren sind gescheitert.
    `

    #include <stdio.h>

    #include <stdlib.h>

    #include </home/ai988/header.c>

    int main(){

    header("Datei einlesen");

    FILE *try;

    int i=0;

    char in[100];

    if((try=fopen("werte.dat","r")) == NULL){

    printf("\nDatei nicht vorhanden.\n");

    }else{

    while(fscanf(try,"%s",in[i]) != EOF){

    i++;

    }

    fclose(try);

    }

    printf("%d\n",(int) &in[1]);

    exit(0);

    }

    `

    Ich habe gelsen das ich so etwas wie einen Buffer verwenden muss, nur ist mir schleierhaft wie das gehen soll oO
    Und das was ich bei Google finde macht mich auch nich schlauer 😞
    Bin für jede Hilfe dankbar.

    mfg Nerosmeel



  • ^^ du sollst doch integer-werte einlesen (fscanf:%d) keine strings (fscanf:%s). und jeden wert schreibst du dann in das array int in[100] (also aus char int machen). damit hast du schon deinen buffer.
    🙂



  • Studiere auch in GM.. komme mit der Auf3 nicht klar.. zumindest beim einlesen mit EOF..

    hier die main von Auf2

    int main()
    {
    int i=0,j;
    int zahlen[100];

    FILE *wertedatei;

    if ((wertedatei = fopen("werte.dat","r")) == NULL)
    {
    printf ("Error");
    return 1;
    }
    else
    {
    while (!feof(wertedatei))
    {
    fscanf(wertedatei, "%i",&zahlen[i]);
    if (i>=100)
    return 1;
    i++;
    }
    }
    fclose (wertedatei);



  • danke für den Tipp 🙂

    so siehts jetzt aus:

    #include <stdio.h>
    #include <stdlib.h>
    #include </home/ai988/header.c>
    
    int main(){
    header("Datei einlesen");
    
    FILE *try;
    int i=0;
    int in[100];
    for(int k = 0; k < 100; k++){
    in[k] = 0;
    }
    
     if((try=fopen("werte.dat","r")) == NULL){
      printf("\nDatei nicht vorhanden.\n");
    }else{
      while(fscanf(try,"%d",&in[i]) != EOF){
       i++;
      }
      fclose(try);
    }
    for(int j=0;j< 35;j++){
    printf("%d",in[j]);
    }
    
     exit(0);
       }
    

    Wenn ich das programm starte bekomme ich aber so was raus:
    10-790-976013-6-6904-12053-48056-78471010-30-320300

    Wenn ich das Array über die Tastatur fülle sollte es doch so gehen oder?
    Werd nochmal was weiter zum experimentieren, vll geschen ja noch Zeichen und Wunder ^^.

    mfg Nerosmeel

    EDIT: hab SAONs Beitrag zu süät bemerkt.
    Mit [Strg]+[d] kannst du ein EOF erzeugen, versuchs mal bin mir nich 100pro sicher

    NOCH EIN EDIT: Fehler gefunden...manchmal sieht man den Wald vor lauter Bäumen nicht. printf("%d \n",in[j]); muss es heißen *schäm*



  • Aer an der Aufgabe 2. in diesem PDF scheitere ich zurzeit.

    Du weißt aber, daß dir Dämonen aus der Nase fliegen könnten, wenn
    du Zeiger in Integers schreibst, oder?



  • jetzt ja^^ aber ich habs ja auch gelöst *freu*

    dafür häng ich an nu an Aufgabe 3...:( scheiß make Kommando



  • hab mir erst alles in die arrayFunction.c geschrieben..

    hing ziemlich lange an der einlesen aber nur scheints zu funktionieren

    wo hängst du fest?



  • Bei der sache mit dem per make kompilieren k.a. wie das gehen soll,
    mit dem Rest hab ich mich noch net beschäftigt, werds aber mal angehen.
    Kannst mich ja bei ICQ adden vll kommen zu zweit auf die Lösung.
    305799772

    so far Neros

    EDIT: hab im mom auch Probleme mit dem Compiler, hast du noch die Unix doku als PDF?



  • ich mach das direkt übern advm1..
    hab leider keine pdf..

    das makefile musst du anlegen
    bsp. joe makefile

    dann

    array: arrayFunktion.o arrayMain.o
    cc -o array arrayFunktion.o arrayMain.o
    
    arrayMain.o: arrayMain.c arrayFunktion.h
    cc -c arrayMain.c
    
    arrayFunktion.o: arrayFunktion.c arrayFunktion.h
    cc -c arrayFunktion.c
    

    nun kannst du es mit make complimieren
    und unter array statt a.out aufrufen..



  • wenn ich das von dir in makefile kopiere und dann make aufrufe kommt das

    "makefile", line 2: make: 1254-055 Dependency line needs colon or double colon operator.
    "makefile", line 5: make: 1254-055 Dependency line needs colon or double colon operator.
    "makefile", line 8: make: 1254-055 Dependency line needs colon or double colon operator.

    aber ich kann sowieso nichts mehr aufem advm1 Kompilieren was eigene Headerdatein benutzt...

    so far Neros



  • die 3 Dateien hast du aber schon angelegt oder?



  • jop ^^ Aber da ich ja garnix mehr Kompeliren kann, werd ich morgen mal zu denn Jungs vom ADV Labor gehen und fragen was das sein kann.

    so far Neros


Anmelden zum Antworten