Nu aveti permisiuni pentru a descarca fisierul grader_test17.in
Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2016-07-28 12:52:57.
Revizia anterioară   Revizia următoare  

Acesta este un code demonstrativ pentru parsarea fişierului de intrare

#include <stdio.h>
#include <ctype.h>

/** Funcţiile necesare parsării fişierului de intrare **/
FILE *_fin;
int _in_loc; char _in_buff[4096];


void read_init(const char* nume) // Apelaţi această funcţie la începutul funcţiei <main>
{
	_fin = fopen(nume, "r");
	_in_loc = 4095;
}

char read_ch()
{
	++_in_loc;
	if (_in_loc == 4096) {
		_in_loc = 0;
		fread(_in_buff, 1, 4096, _fin);
	}
	return _in_buff[_in_loc];
}

unsigned int read_u32() // Apelaţi această funcţie pentru a citi un număr ce se încadrează în categoria <unsigned int>
{
	unsigned int u32 = 0; char c;
	while (!isdigit(c = read_ch()));
	u32 = c - '0';
	while (isdigit(c = read_ch())) {
		u32 = u32 * 10 + c - '0';
	}
	return u32;
}

unsigned long long read_u64() // Apelaţi această funcţie pentru a citi un număr ce se încadrează în categoria <unsigned long long>
{
	unsigned long long u64 = 0; char c;
	while (!isdigit(c = read_ch()));
	u64 = c - '0';
	while (isdigit(c = read_ch())) {
		u64 = u64 * 10 + c - '0';
	}
	return u64;
}