Nu aveti permisiuni pentru a descarca fisierul grader_test2.in
Diferente pentru parsare-fisier-iesire intre reviziile #10 si #12
Nu exista diferente intre titluri.
Diferente intre continut:
== code(cpp) | #include <stdio.h>
/** Funcţiile necesare parsării fişierului de ieşire **/ FILE *_fout;
int _out_loc; char _out_buff[4096];
int _out_loc; char _out_buff[50000];
void write_init(const char* name) // Apelaţi această funcţie la începutul funcţiei <main> {
_fout = fopen(name, "w");_out_loc = 0;
_fout = fopen(name, "w"); _out_loc = 0;
}
void write_ch(char ch) // Apelaţi această funcţie pentru a scrie un caracter (cum ar fi ' ' sau '\n') {
if (_out_loc ==4096) {fwrite(_out_buff, 1,4096, _fout);_out_loc = 0;_out_buff[_out_loc++] = ch;} else {_out_buff[_out_loc++] = ch;}
if (_out_loc == 50000) { fwrite(_out_buff, 1, 50000, _fout); _out_loc = 0; _out_buff[_out_loc++] = ch; } else { _out_buff[_out_loc++] = ch; }
}
void write_u32(unsigned int vu32) // Apelaţi această funcţie pentru a scrie un număr ce se încadrează în categoria <unsigned int> {
if (vu32 == 0) write_ch ('0'); int cif[11]; cif[0] = 0; while (vu32) cif[++cif[0]] = vu32 % 10, vu32 /= 10; for (int i=cif[0]; i>=1; i--) write_ch (cif[i] + '0');
if (vu32 <= 9) { write_ch(vu32 + '0'); } else { write_u32(vu32 / 10); write_ch(vu32 % 10 + '0'); }
}
void write_u64(unsigned long long vu64) // Apelaţi această funcţie pentru a scrie un număr ce se încadrează în categoria <unsigned long long> {
if (vu64 == 0) write_ch ('0'); int cif[11]; cif[0] = 0; while (vu64) cif[++cif[0]] = vu64 % 10, vu64 /= 10; for (int i=cif[0]; i>=1; i--) write_ch (cif[i] + '0');
if (vu64 <= 9) { write_ch(vu64 + '0'); } else { write_u64(vu64 / 10); write_ch(vu64 % 10 + '0'); }
}
void write_appendix() // ###! ATENŢIE, Apelaţi această funcţie la finalul prgramului. Altfel, fisierul outpt NU VA CONŢINE ÎN ÎNTREGIME ceea ce doriţi! {
fwrite(_out_buff, 1, _out_loc, _fout);fclose(_fout);
fwrite(_out_buff, 1, _out_loc, _fout); fclose(_fout);
} ==
== code(cpp) | int main() {
write_init(exemplu.out");
write_init("exemplu.out");
write_u32(1465423745); write_ch(' '); write_u64(23441465423745);