Springen naar inhoud

File op het scherm weergeven (c)


  • Log in om te kunnen reageren

#1

Leviathan

    Leviathan


  • >100 berichten
  • 123 berichten
  • Ervaren gebruiker

Geplaatst op 27 september 2011 - 14:16

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?

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

  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;
}

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Leviathan

    Leviathan


  • >100 berichten
  • 123 berichten
  • Ervaren gebruiker

Geplaatst op 27 september 2011 - 16:47

Gevonden:

Na het regels tellen moet de filepointer weer teruggezet worden naar het begin van de file.
dus:
rewind(BEW1);





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures