cuốn sách gpt4 ai đã làm

Cần trợ giúp định dạng đầu ra từ C printf

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 03:59:47 29 4
mua khóa gpt4 Nike

Tôi đang hiển thị một bảng được phân vùng trông giống như:

Số Tên thiết bị Loại phân vùng Kích thước tính bằng MB
------------------------------------------------------------
1/dev/sda1 NTFS 300
2 /dev/sda2 *Win95 FAT32 99
3 /dev/sda3 Không xác định 128
4 /dev/sda4 NTFS 19472
120/dev/sda120 NTFS 3000

*=Phân vùng đang hoạt động

Bây giờ để hiển thị nội dung trên, chúng ta sử dụng printf đầu ra được định dạng, chuỗi định dạng là

"%-6d=số phân vùng %-25.25s=tên thiết bị %c=phân vùng hoạt động %-30.30s=loại bộ phận %7Ld=size"

Bây giờ tôi muốn hiển thị cùng một bảng phân vùng nhưng sửa đổi nó một chút để các khoảng trống trong các khe phân vùng sẽ được hiển thị theo phạm vi, như:

5-119 /dev/sda5.../dev/sda119 Trống 0

Tôi sử dụng chuỗi định dạng như:

%d-%-6d=phạm vi phân vùng %s%d...%s%d=(/dev/sda5.../dev/sda119) %c %-30.30s %7Ld

Nhưng điều này không giúp tôi.

Chuỗi định dạng đúng phải là gì? Tôi đang sử dụng trình biên dịch gcc.

câu trả lời hay nhất

Tôi nghĩ bạn cần sử dụng snprintf() để chuẩn bị hai chuỗi ghép, sau đó sử dụng chuỗi đơn giản hơn printf() để thực hiện việc in ấn thực tế. Vì bạn không hiển thị mã thực của mình nên chúng tôi phải đoán mọi thứ, điều này thật rắc rối...

int tối thiểu = 5;
int max = 119;
char *dev = "/dev/sda";

char num_range[32];
char dev_range[60];

snprintf(num_range, sizeof(num_range), "%d-%d", min, max);
snprintf(dev_range, sizeof(dev_range), "%s%d...%s%d", dev, min, dev, max);

printf("%-10s %-50.50s %c%-30.30s %7d", num_range, dev_range, '', "Trống", 0);

Bạn đã chỉ định cho một thiết bị %-25,25 giây, vì vậy không rõ liệu bạn nên nhân đôi phạm vi hay sử dụng một giá trị khác (hoặc thậm chí cùng một giá trị); bạn sẽ cần điều chỉnh phần đó của chuỗi định dạng cho phù hợp với mình. Kỹ thuật này cũng là cách tôi lấy dấu hai chấm ở cuối tên - định dạng tên và dấu hai chấm thành một chuỗi, sau đó định dạng chuỗi đó thành thao tác in cuối cùng.

Về c - cần trợ giúp định dạng đầu ra từ C printf , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/13152549/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress