File op scherm weergeven.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Taipan
  • Registratie: Augustus 2007
  • Laatst online: 10-09 19:49
Hallo,

Ik probeer een file op mijn scherm weer te laten geven met 20 regels per keer.
Allereerst telt het programma de regels waarna hij de eerste 20 geeft.
Hierna kan je kiezen of je verder wil of de file wil sluiten.

Mijn idee was om met een loop de /n te tellen tot de 20, maar daarvoor moet ik eerst normaal een regel kunnen lezen.


tussen:
/************Print first 20 lines************/
en
/***************Print next 20 lines?*************/
Probeer ik gewoon de eerste regel van mijn textfile (waar wel wat inzit) op het scherm te zetten maar ik krijg alleen random characters.
Wat klopt er niet aan deze opstelling?


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/******************************************************************************

  File            : <filename_0.c>
  Compiler        : <GCC (WinAVR), versie 4.3.3>
  Revision        : Revision: 0.1
  Date            : 2011/09/27
  Author            : <Joeri Friederich>

******************************************************************************/


/******************************************************************************
    DEPENDENCIES
******************************************************************************/

#include <stdio.h>
#include <stdlib.h>

/*****************************************************************************/
int main ()
{

    int Count=0;
    int ch = '\n';
    char a[100];
    char i;


    FILE *BEW1;
    BEW1 = fopen ("Opdr_4_text.txt","r");
        if(BEW1 == NULL)
            {
            printf ("Cannot open file\n");
            }

        else
            {
                /*****************Count lines****************/
            printf ("File Open\n\n.....Counting lines......\n\n");
                while ( (ch = getc(BEW1)) != EOF ) // Read chars one by one.
                {
                    if ( ch == '\n' )
                    {
                    ++Count; // +1 For every found end of line \n.
                    }
                }
                printf ("Lines: %d\n\n",Count);//Prints ammount of lines


                 /************Print first 20 lines************/
        if ( fgets (a , 100 , BEW1) != NULL )puts (a);
        if ( fgets (a , 100 , BEW1) == NULL ) printf ("nope.\n\n,");

        fscanf(BEW1,"%s \n",&a);
        printf("%s\n",a);

                /***************Print next 20 lines?*************/
   (Boeit effe niet dus weggehaald)
            }
fclose (BEW1);
printf ("File Closed\n\n,");

   return Count;
}

Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Waarom werkt wat je nu hebt niet, en wat heb je geprobeert om het wel werkende te krijgen?

[ Voor 46% gewijzigd door TJHeuvel op 27-09-2011 17:10 ]

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • Taipan
  • Registratie: Augustus 2007
  • Laatst online: 10-09 19:49
Alles wat ik als output krijg is: ,@5$%
Of wat anders randoms, in de eerste regel staat echter Wikipedia.
Textfile is kladblok: Opdr_4_text.txt

Hij telt netjes de regels en geeft het aantal regels terug maar wanneer hij iets uit de text file moet lezen krijg ik gibberish.

Ik heb zelf al een hele tijd op allerlei fora's google en Cplusplus.com zitten zoeken en kwam bij deze oplossingen:
1:
if ( fgets (a , 100 , BEW1) != NULL )puts (a);
if ( fgets (a , 100 , BEW1) == NULL ) printf ("nope.\n\n,");

//Hier krijg ik alleen nope terug dus blijkbaar wordt er NULL geretourneerd bij het fgets command. Did duidt op lege file of een error in het lezen.
Wat dee error echter is is dus de vraag.

2:
fscanf(BEW1,"%s \n",&a);
printf("%s\n",a);

Deze geeft random karakters terug.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Het zal wel aan mij liggen maar je leest tot de EOF en gaat dan tekens afdrukken :? Moet je niet even je filepointer resetten?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Taipan
  • Registratie: Augustus 2007
  • Laatst online: 10-09 19:49
rewind(BEW1);

Jep dat heeft het gefixed.

Logisch als ik er nu over nadenk.

Danku zeer.!