code_projects_c/STEP1_Basics/6_Files/main.c
2025-05-09 10:42:27 +03:00

92 lines
1.8 KiB
C

#include <stdio.h>
#include <stdbool.h>
#include "c_cross_pack/libs/string.h"
int main() {
int matrix[2][2];
int a, b;
// Scan
printf("Enter a: "); scanf("%d", &a);
printf("Enter b: "); scanf("%d", &b);
matrix[0][0] = a; matrix[0][1] = a + 1;
matrix[1][0] = b; matrix[1][1] = b + 1;
// Format strings
string first = strInit(int2Str(&matrix[0][0]));
strAdd(&first, " ");
strAdd(&first, int2Str(&matrix[0][1]));
string second = strInit(int2Str(&matrix[1][0]));
strAdd(&second, " ");
strAdd(&second, int2Str(&matrix[1][1]));
// Write data
FILE* fptr = fopen("file", "w");
fprintf(fptr, first);
fprintf(fptr, "\n");
fprintf(fptr, second);
fprintf(fptr, "\n");
fclose(fptr);
string rawFirst = strInit("");
string rawSecond = strInit("");
int newMatrix[2][2];
// Read new values
fptr = fopen("file", "r");
string buffer = strInit("");
strResize(&buffer, 128);
bool isFirst = true;
while (fgets(buffer, 128, fptr)) {
//printf("%s", buffer);
if (isFirst) {
strAdd(&rawFirst, buffer);
isFirst = false;
}
else {
strAdd(&rawSecond, buffer);
}
}
fclose(fptr);
// Parse first values pairs
isFirst = true;
char* token = strtok(rawFirst, " ");
while (token)
{
if (isFirst) {
newMatrix[0][0] = atoi(token);
isFirst = false;
}
else {
newMatrix[0][1] = atoi(token);
}
token = strtok(NULL, " ");
}
// Parse first values pairs
isFirst = true;
token = strtok(rawSecond, " ");
while (token)
{
if (isFirst) {
newMatrix[1][0] = atoi(token);
isFirst = false;
}
else {
newMatrix[1][1] = atoi(token);
}
token = strtok(NULL, " ");
}
printf("\nOriginal matrix:\n"
"[[%d, %d], [%d, %d]]\n"
"Readed matrix:\n"
"[[%d, %d], [%d, %d]]\n",
matrix[0][0], matrix[0][1], matrix[1][0], matrix[1][1],
newMatrix[0][0], newMatrix[0][1], newMatrix[1][0], newMatrix[1][1]);
return 0;
}