Sử dụng fprintf và fscanf để đọc/ghi file với định dạng tùy chỉnh

1. Giới thiệu Trong quá trình phát triển dự án, thường có nhu cầu lưu trữ hoặc đọc các cấu hình cụ thể từ tệp tin, và các dữ liệu này thường được tổ chức theo một định dạng xác định trước. Hệ điều hành Linux cung cấp hai hàm hữu ích giúp thao tác đọc/ghi nội dung với định dạng cố định một cách thuận tiện: fprintf và fscanf. 2. Ứng dụng cơ bản ...

Đăng vào ngày 25 tháng 6 lúc 05:57

Bài tập lập trình C cơ bản với các ví dụ minh họa

Hiển thị hình dạng đơn giản #include <stdio.h> int main() { puts(" 0 "); puts("<H>"); puts("I I"); system("pause"); return 0; } Vẽ hai hình song song #include <stdio.h> int main() { printf(" 0 0\n"); printf("<H <H>\n"); printf("I I I I\n"); return 0; } Kiểm tra điều ki ...

Đăng vào ngày 24 tháng 6 lúc 22:48

Truyền mảng vào hàm trong C

1. Truyền phần tử mảng làm tham số thực Mỗi phần tử mảng có thể được dùng như một biểu thức, do đó hoàn toàn có thể truyền chúng vào hàm giống như biến thông thường. Cơ chế truyền là "truyền giá trị" — nghĩa là dữ liệu được sao chép, nên mọi thay đổi bên trong hàm không ảnh hưởng đến giá trị gốc bên ngoài. 2. Truyền tên mảng làm tham số Khi tr ...

Đăng vào ngày 24 tháng 6 lúc 10:38

Đếm số bit 1 trong nhị phân và các bài toán liên quan

Việc đếm số bit 1 trong biểu diễn nhị phân của một số nguyên là thao tác cơ bản trong lập trình hệ thống, tối ưu thuật toán và xử lý dữ liệu. Dưới đây là cách tiếp cận hiệu quả cùng các ứng dụng thực tế. 1. Đếm bit 1 bằng phép AND với (n - 1) Phương pháp này tận dụng tính chất: n & (n - 1) sẽ xóa đi bit 1 ở vị trí thấp nhất của n. Lặp lại ...

Đăng vào ngày 24 tháng 6 lúc 06:35

Kỹ thuật Lập trình C: Biến Tĩnh, Đệ quy và Xử lý Số

Hiển thị văn bản tại vị trí ngẫu nhiên: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define COL_MAX 80 void hien_thi(int dong, int cot, char chuoi[]); void in_khoang_trong(int so); void in_dong_trong(int so); int main() { int dong, cot, i; char chuoi[] = "Chào bạn!"; ...

Đăng vào ngày 23 tháng 6 lúc 03:03

Quản lý dữ liệu học sinh và thư viện bằng cấu trúc trong C

Nhiệm vụ 1: Quản lý điểm số học sinh #include <stdio.h> #include <string.h> #define MAX_STUDENTS 3 typedef struct { int student_id; char student_name[20]; char subject_name[20]; double performance_score; double midterm_score; double final_score; double total_score; char grade[10]; } StudentRecord; ...

Đăng vào ngày 21 tháng 6 lúc 05:23

Cách đăng ký bộ phân tích giao thức trong Wireshark: Hàm proto_register

Trong kiến trúc mở rộng của Wireshark, việc đăng ký bộ phân tích (dissector) là bước thiết yếu để tích hợp hỗ trợ cho giao thức tùy chỉnh. Quá trình này không chỉ khai báo thông tin giao thức mà còn thiết lập cấu trúc hiển thị, định nghĩa trường dữ liệu và liên kết logic xử lý gói tin — tất cả đều xoay quanh nhóm hàm proto_register_*. Khởi tạo ...

Đăng vào ngày 20 tháng 6 lúc 06:07

Hiểu về "Định nghĩa lại" trong GCC - weak

Khi làm việc với STM32, có một từ khóa __weak mà khi chúng ta định nghĩa lại hàm được đánh dấu bởi __weak, chương trình sẽ gọi hàm mới này thay vì hàm gốc. Tính năng này tương tự như việc định nghĩa lại trong C++ và cũng giống như khái niệm về weak symbol được mô tả trong cuốn sách "The Self-Cultivation of a Programmer". Weak Symbol v ...

Đăng vào ngày 19 tháng 6 lúc 05:31

Tạo cặp socket kết nối với hàm `socketpair`

Hàm socketpair là một hệ thống gọi trên Unix/Linux, giúp tạo ra hai socket đã được kết nối. Cặp socket này có thể sử dụng để truyền thông hai chiều giữa các tiến trình cùng nhau hoặc giữa tiến trình cha và con. Khai báo của hàm socketpair như sau: #include <sys/socket.h> int socketpair(int giao_thức, int loai, int thuat_toan, int mang ...

Đăng vào ngày 17 tháng 6 lúc 21:38

Hệ thống Lưu trữ Tệp Phân tán FastDFS: Hướng dẫn Bắt đầu

Giới thiệu về FastDFS FastDFS (Fast Distributed File System) là một hệ thống lưu trữ tệp phân tán, mã nguồn mở, được thiết kế để cung cấp hiệu suất cao cho việc lưu trữ và truy cập tệp. Phát triển bởi nhà phát triển người Trung Quốc Yu Qing, FastDFS tập trung vào việc xử lý các tệp có dung lượng lớn và các yêu cầu truy cập đồng thời cao. Hệ thố ...

Đăng vào ngày 17 tháng 6 lúc 20:28