zeilevorschub bei lesen mit fscanf



  • hallo,

    ich möchte mit fscanf eine datei einlesen, die folgendermaßen aussieht:

    3 2 1000
    DC271 x2 Ch1 4×_1.data
    400000 1 400000
    # Date: 2005-04-25T18:29:05
    # Number of samples: 400000 S (400 KS)
    # Time increment: 5.00000000e-10 s (500 ps)
    # Gain: 7.81250000e-03 V/LSB (7.81 mV/LSB)
    # Offset: 5.00000000e-01 V (500 mV)
    # Trigger delay: 0.00000000e+00 s (0.00 s)
    # Initial time:
    # -3.31514625e-10 s (-332 ps)
    First data point (alignment):
    .
    .
    usw

    für die erste zeile benutze ich

    fscanf(afile,"%d %d %d",&run,&channels,&filenumber);

    dann würde ich aber gerne 2 zeilen runterhopsen und dort weiterlesen(400000 ..). danach die anderen daten.

    zuletzt muß jede 10 zeile ein wert ausgelesen werden.
    das habe ich an eine Schleife mit 10 x \n gedacht. so irgendwie:

    fscanf(afile,"%d\n\n\n\n\n\n\n\n\n",&run);

    oder was mit getc("\n")

    das \n zeigt aber keine wirkung. kann man das \n bei fscanf benutzen und funkt das?

    alternativ würde ich ja auch iostream/c++ benutzen, da weiß ich wies klappt, aber da wiederum ist das einlesen nicht so komfortabel wie mit fscanf(jedenfalls für mich). z.b. weiß ich nicht wie ich die erste zeile(3 2 1000)
    einlesen und gleich den jeweiligen variablen zuordnen soll mit c++.

    heiko



  • wenn du fgets() benutzt wird immer eine ganze Zeile gelesen.

    Also ließ die Zeile aus und dann bearbeite sie oder schmeiß sie weg


Anmelden zum Antworten