VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
C Cơ Bản Chuỗi (String) Trong C

File I/O Trong C

Xử Lý File Trong C Hàm fscanf và fprintf() Hàm fgetc và fputc() Hàm fgets() và fputs() Hàm fseek() trong C Hàm rewind() trong C Hàm ftell() trong C
Bài Tập C Có Lời Giải

Bài tập File I/O trong C

Nhập ma trận từ file trong C

Bài Học Bổ Sung

Enumeration (enum) trong C Preprocessors trong C Bảng ASCII
1 / 3
❮ ❯

Hàm fscanf và fprintf() - Đọc và ghi file trong C


File I/O trong C - Các hàm xử lý File trong C
Hàm fgetc() và fputc() - Đọc và ghi một ký tự vào file

Nội dung chính

  • Hàm fprintf() - Ghi file
  • Hàm fscanf() - Đọc file
  • Ví dụ file trong C - Lưu trữ thông tin nhân viên

Hàm fprintf() - Ghi file

Hàm fprintf() trong C được sử dụng để ghi các ký tự vào file. Nó gửi dữ liệu được định dạng tới một stream.

Cú pháp:


int fprintf(FILE *stream, const char *format [, argument, ...])

Ví dụ:


#include <stdio.h>

main() {
   FILE *fp;
   // mo file
   fp = fopen("file.txt", "w");
   // ghi du lieu vao file
   fprintf(fp, "Hello C, su dung fprintf()...\n");
   // dong file
   fclose(fp);
}

Hàm fscanf() - Đọc file

Hàm fscanf () được sử dụng để đọc tập hợp các ký tự từ file. Nó đọc một từ trong file và trả về EOF ở vị trí kết thúc file.

Cú pháp:


int fscanf(FILE *stream, const char *format [, argument, ...])

Ví dụ 1:


#include <stdio.h>

main() {  
   FILE *fp;
   char buff[255];
   fp = fopen("file.txt", "r");
   while (fscanf(fp, "%s", buff) != EOF) {
      printf("%s ", buff);
   }
   fclose(fp);
}

Kết quả:

Hello C, su dung fprintf()...

Ví dụ 2: đọc thông tin sinh viên:

Giả sử chúng ta có file sinhvien.txt có nội dung như sau:

Name: Vinh		ID: 1		Marks: 7.5
Name: Phuc		ID: 3		Marks: 9.0
Name: Phi		ID: 2		Marks: 10
Name: Manh		ID: 4		Marks: 9.5
Name: Thang		ID: 5		Marks: 8.0

Nội dung trên khi mở bằng notepad++ trông như sau, mũi tên màu đỏ thể hiện dấu tab (\t):

Hàm fscanf và fprintf() - Đọc và ghi file trong C

Sau đây là chương trình đọc file sinhvien.txt:


#include<stdio.h>

int main() {
    FILE *fp;
    char name[50];
    int id;
    float marks;
 
    fp = fopen("sinhvien.txt", "r");
 
    if(fp == NULL) {
        printf("Error opening file\n");
        exit(1);
    }
 
    printf("Vi du su dung ham fscanf(): \n\n");
    printf("Name:\t\tID\t\tMarks\n");
    
    // doc thong tin sinh vien
    while( fscanf(fp, "Name: %s\t\tID: %d\t\tMarks: %f\n"
                    , name, &id, &marks) != EOF )
    {
        printf("%s\t\t%d\t\t%.2f\n", name, id ,marks);
    }
 
    fclose(fp);
    return 0;
}

Chạy chương trình C trên cho kết quả như sau:

Hàm fscanf và fprintf() - Đọc và ghi file trong C

Ví dụ file trong C - Lưu trữ thông tin nhân viên

Dưới đây là một ví dụ xử lý tệp để lưu trữ thông tin sinh viên khi người dùng nhập từ console. Chúng ta sẽ lưu trữ id, name và salary của nhân viên.


#include <stdio.h>

void main() {  
    FILE *fptr;
    int id;
    char name[30];
    int salary;
    
    fptr = fopen("emp.txt", "w+");
    
    if (fptr == NULL) {
        printf("File khong ton tai.\n");
        return;
    }
    
    printf("Nhap id: ");
    scanf("%d", &id);
    fprintf(fptr, "Id = %d\n", id);
    printf("Nhap name: ");
    scanf("%s", name);
    fprintf(fptr, "Name = %s\n", name);
    printf("Nhap salary: ");
    scanf("%f", &salary);
    fprintf(fptr, "Salary = %.2f\n", salary);
    
    fclose(fptr);
}

Kết quả:

Nhap id: 1001
Nhap name: David
Nhap salary: 12000

File: emp.txt

Id = 1001
Name = David
Salary = 12000.00

File I/O trong C - Các hàm xử lý File trong C
Hàm fgetc() và fputc() - Đọc và ghi một ký tự vào file

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaLinkedList trong javaArrayList trong javaXử lý duplicate trong SQLPhím tắt hay dùng trong ExcelBảo mật tập tin ExcelDịch trang tính trong ExcelIn trang tính trong ExcelHàm VLOOKUP trong ExcelĐối tượng đồ họa trong ExcelSử dụng macro trong ExcelSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml