📂 C File Handling
Estimated reading: 3 minutes 7 views

✍️ C Write to Files – Output Data to Text and Binary Files in C


🧲 Introduction – How to Write to Files in C?

In C programming, writing to files enables a program to store data persistently in external files. Whether you’re saving logs, exporting reports, or storing raw binary data, C provides standard functions like fprintf(), fputs(), and fwrite() to perform file output operations.

🎯 In this guide, you’ll learn:

  • How to open files for writing
  • Write to text files using fprintf() and fputs()
  • Write to binary files using fwrite()
  • Handle common writing errors and close files properly

📁 Opening Files for Writing

Before writing to a file, it must be opened in write mode using fopen(). Writing modes:

ModeDescription
"w"Write text file (overwrite if exists)
"a"Append text at end of file
"wb"Write binary file (overwrite)
"ab"Append to binary file
FILE *fp = fopen("output.txt", "w");
if (fp == NULL) {
    perror("Error opening file");
}

🖊️ Writing to Text Files

fprintf() – Formatted Output

FILE *fp = fopen("data.txt", "w");
fprintf(fp, "Name: %s\nAge: %d\n", "Alice", 30);
fclose(fp);
  • Behaves like printf() but writes to a file
  • Supports format specifiers (%s, %d, %f, etc.)

fputs() – Write String to File

FILE *fp = fopen("log.txt", "a");
fputs("Log entry: Program started.\n", fp);
fclose(fp);
  • Writes a string (without format control)
  • Faster and simpler than fprintf() for plain strings

💾 Writing to Binary Files

fwrite() – Write Raw Data

FILE *fp = fopen("data.bin", "wb");
int numbers[] = {10, 20, 30};
fwrite(numbers, sizeof(int), 3, fp);
fclose(fp);

Syntax:

fwrite(pointer, size_of_each_element, number_of_elements, file_pointer);
  • Writes raw memory as-is into the file
  • Ideal for compact storage and structured records

❗ Error Handling While Writing

Always verify that the file is opened and written successfully:

FILE *fp = fopen("file.txt", "w");
if (fp == NULL) {
    perror("Failed to open file");
    return 1;
}

if (fprintf(fp, "Hello") < 0) {
    printf("Write failed!\n");
}

fclose(fp);

🧠 Use Cases

TaskFunction
Writing logsfputs()
Exporting reportsfprintf()
Saving binary datafwrite()
Appending entries"a" or "ab" mode
Writing configurationfprintf()

💡 Best Practices & Tips

📘 Best Practice:
Always close the file using fclose() after writing to ensure buffers are flushed and file descriptors released.

💡 Tip:
Use "a" or "ab" mode to preserve existing data and append new content.

⚠️ Pitfall:
Opening a file in "w" or "wb" overwrites its content if it already exists.


📌 Summary – Recap & Next Steps

Writing to files in C is a core part of building persistent, user-driven applications. Whether using formatted text or binary output, you can control how data is saved and organized externally.

🔍 Key Takeaways:

  • Use fopen("file.txt", "w") or "wb" to write files
  • fprintf() and fputs() are for text output
  • fwrite() is used for binary output
  • Always check file opening success and close files properly

⚙️ Real-World Relevance:

Used in loggers, data exporters, binary storage tools, report generation, and embedded device state storage.


❓ Frequently Asked Questions (FAQ)

❓ How do I write to a text file in C?

✅ Use fopen() with "w" or "a" mode, then write using fprintf() or fputs().


❓ How can I write binary data to a file?

✅ Use fopen() with "wb" mode and write with fwrite().


❓ What happens if I open an existing file in "w" mode?

❌ It gets overwritten, and all previous content is lost.


❓ Is fprintf() safer than fputs()?

fprintf() offers format control, while fputs() is simpler for plain strings. Both are safe if used correctly.


❓ Can I write multiple types of data in one file?

✅ Yes. Use fprintf() for formatted text or fwrite() with structs for binary.


Share Now :

Leave a Reply

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

Share

✍️ C Write to Files

Or Copy Link

CONTENTS
Scroll to Top