All pastes #769803 Raw Edit

Anonymous

public c v1 · immutable
·published 2007-11-11 18:02 UTC
rendered paste body
/*   Author sorry =)   ============================   1. Liitmine 1 sekund 30 punkti   Kirjutada programm, mis oskab t¨aisarve liita.   Sisend. Tekstifaili liit.sis esimesel real on ¨ulesande pealkiri S (pikkusega kuni 50 m¨arki) ja   teisel real kaks t¨uhikuga eraldatud t¨aisarvu A ja B (absoluutv¨a¨artusega kuni 10 000).   V¨aljund. Tekstifaili liit.val ainsale reale v¨aljastada pealkiri S, koolon, t¨uhik ja sisendis antud   arvude A ja B summa. */#define MAX_TITLE_CHARS 51#include <stdio.h>int main() {		FILE *sisend;		if((sisend = fopen("liit.sis","r")) == NULL) {				printf("Proovisin avada liit.sis'i kuid tekkis tõrge, katkestan\n");		return -1;			} else {				printf("Laen väärtusi sisend.txt'ist..\n");				char byte;		int newLine = 0;		char exrTitle[MAX_TITLE_CHARS];		int counter = 0;		int errorCode = 0;		int split = 0;		//		char exrNumbers[14];						while((byte = fgetc(sisend)) != EOF) { 			if(newLine == 0 && byte == '\n') {				newLine = 1;				exrTitle[counter] = '\0';				counter = 0;				continue;			}			if(newLine == 0) {				if(counter >= 50) { // Viimane byte peab olema NUL byte					errorCode = 1; // Buffer overflow					break;				}				exrTitle[counter++] = byte;			} else {				if(counter >= 13) { 					errorCode = 1;					break;				}				if(byte == '\n') { 					exrNumbers[++counter] = '\0'; 					counter = 0;					break;				}				exrNumbers[counter++] = byte;			}		}				if(errorCode == 0) {			signed long int x1, x2;			sscanf(exrNumbers,"%ld %ld",&x1,&x2);			signed long int result = x1+x2;						FILE *valjund = fopen("liit.val","w");			if(valjund == NULL) printf("Väljund null!");			else { 				fprintf(valjund,"%s: %ld\r\n",exrTitle,result);				fclose(valjund); fclose(sisend);			}		} else {			printf("OVERFLOW ! Max Title Chars : 50 || Max Integers : 11 byte => xxxxx xxxxx"); 		}	return 0;	}}