c programming

Unformatted & Formatted I/O’s and Data Type Casting

Unformatted I/O

Unformatted I/O में बिना किसी Specific Structure या Formatting के Data को Read या Write करना शामिल है। इसका मतलब यह है, कि Data को बिना किसी Interpretation के Raw Byte के रूप में Process किया जाता है। इस प्रकार का I/O Binary Data या Low-Level File Operation से Deal करने में use होता है| जहां Bytes को Direct Access करने की आवश्यकता होती है।

Example

Title


#include <stdio.h>
int main() {
FILE *file;
int data[] = {10, 20, 30, 40, 50};
int num_elements = sizeof(data) / sizeof(data[0]);

// Writing data to a binary file
file = fopen(“unformatted_data.bin”, “wb”);
if (file != NULL) {
fwrite(data, sizeof(int), num_elements, file);
fclose(file);
printf(“Data written to unformatted_data.bin\n”);
} else {
printf(“Error opening file for writing\n”);
}

// Reading data from the binary file
int read_data[num_elements];
file = fopen(“unformatted_data.bin”, “rb”);
if (file != NULL) {
fread(read_data, sizeof(int), num_elements, file);
fclose(file);
printf(“Data read from unformatted_data.bin: “);
for (int i = 0; i < num_elements; i++) {
printf(“%d “, read_data[i]);
}
printf(“\n”);
} else {
printf(“Error opening file for reading\n”);
}
return 0;
}

Output 


Data written to unformatted_data.bin
Data read from unformatted_data.bin: 10 20 30 40 50

Formatted I/O

Formatted I/O Human-Readable Format में Data से संबंधित है, जहां Data को एक Specific Layout या Style में Present किया जाता है। इसका use अक्सर Console के माध्यम से User के साथ Interact करते समय या Text File को Read/Write करते समय किया जाता है।

Example


#include <stdio.h>
int main() {
FILE *file;
int data[] = {10, 20, 30, 40, 50};
int num_elements = sizeof(data)/sizeof(data[0]);

// Writing data to a text file
file = fopen(“formatted_data.txt”, “w”);
if (file != NULL) {
for (int i = 0; i < num_elements; i++) {
printf(file, “%d “, data[i]);
}
fclose(file);
printf(“Data written to formatted_data.txt\n”);
} else {
printf(“Error opening file for writing\n”);
}

// Reading data from the text file
int read_data[num_elements];
file = fopen(“formatted_data.txt”, “r”);
if (file != NULL) {
for (int i = 0; i < num_elements; i++) {
fscanf(file, “%d”, &read_data[i]);
}
fclose(file);
printf(“Data read from formatted_data.txt: “);
for (int i = 0; i < num_elements; i++) {
printf(“%d “, read_data[i]);
}
printf(“\n”);
} else {
printf(“Error opening file for reading\n”);
}
return 0;
}

Output


Data written to formatted_data.txt
Data read from formatted_data.txt: 10 20 30 40 50

Data Type Casting

Data Type Casting को Type Conversion के रूप में भी जाना जाता है| यह C Programming में एक Fundamental Concept है, जो Developers को एक Data Type को दूसरे में Convert करने की Permission देती है। C Programming Language में, Data Type Casting एक महत्वपूर्ण Operation है, जब Different Data Type के Variable पर Operation करने की आवश्यकता होती है, या जब आप एक Type के Value को एक अलग Type के Variable पर Assign करना चाहते हैं।

Implicit Type Casting

Implicit Type Casting को Automatic Type Conversion के रूप में भी जाना जाता है, इसमें Compiler Programmer द्वारा Explicit Conversion की आवश्यकता के बिना Automatically रूप से एक Data Type को दूसरे में Convert करता है। यह आमतौर पर तब होता है, जब Low Precise Data type को High Precise Data Type में Convert किया जाता है| अथवा जब छोटे Data Type को बड़े Data Type में परिवर्तित किया जाता है।

Example

यहां दो Variable हैं- एक Integer (int) और एक Floating-Point Number (float)। जब Float Variable में Int Value Assign करने का प्रयास करेंगे| तो C Compiler Automatically रूप से Type Conversion Perform करेगा।


#include <stdio.h>
int main() {
int integerValue = 10;
float floatValue;
floatValue = integerValue; // Implicit type casting
printf(“integerValue: %d\n”, integerValue);
printf(“floatValue: %f\n”, floatValue);
return 0;
}

Output


integerValue: 10
floatValue: 10.000000

Explicit Type Casting

Explicit Type Casting को Manual Type conversion के रूप में भी जाना जाता है|यह Method तब Effective होता है, जब Programmer किसी Variable के लिए Desire Data Type को Explicitly रूप से Specifies करता है। High Precise Data Type को Low Precise Data Type में Convert करते समय यह आवश्यक होता है, क्योंकि इससे Data Loss हो सकती है।

Example

यहां हमारे पास एक Floating-Point Number है, और हम इसे Integer Variable में Store करना चाहते हैं। चूँकि Float Type में int की तुलना में अधिक Precision होती है, इसलिए Data Loss से बचने के लिए हमें Float Value को स्पष्ट रूप से int Value में डालने की आवश्यकता होती है।


#include <stdio.h>

int main() {
float floatValue = 3.14159;
int integerValue;
// Explicit Type Casting
integerValue = (int)floatValue;
printf(“floatValue: %f\n”, floatValue);
printf(“integerValue: %d\n”, integerValue);
return 0;
}

Output


floatValue: 3.141590
integerValue: 3

इस Example में, FloatValue को Explicitly रूप से एक int में डाला जाता है, जिसके परिणामस्वरूप Decimal Precision का Loss होता है। printf Function पूरी Precision और IntegerValue के साथ FloatValue Display करता है, जो Explicit Type Casting का Result Show करता है।

Tags: No tags

Add a Comment

Your email address will not be published. Required fields are marked *