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