بهذا الكود، يمكنك تنسيق إخراج البيانات بحيث تظهر تحت كل فئة بشكل مناسب. يمكنك استخدام مساحات فارغة (spaces) لضبط المسافات بين العناصر. في هذا السياق، يمكنك تجربة تعديل الكود بالشكل التالي:
cppFILE *fp;
fp = fopen("Records.txt","r");
cout << left << setw(12) << "Category" << setw(8) << "ID" << setw(20) << "Name" << setw(20) << "Author" << setw(10) << "Quantity" << setw(8) << "Price" << setw(8) << "Rack" << endl << endl;
while (fread(&b, sizeof(b), 1, fp) == 1) {
cout << left << setw(12) << b.category << setw(8) << b.id << setw(20) << b.name << setw(20) << b.author << setw(10) << b.quantity << setw(8) << b.price << setw(8) << b.rackno;
cout << endl << endl;
}
fclose(fp);
هذا الشكل يستخدم setw() لتعيين عرض كل عمود، و left لضمان أن تكون البيانات محاذاة إلى اليسار. يمكنك تعديل القيم في setw() لضبط العرض والمسافات كما تشاء.
-
فهم ترتيب السلاسل في لغة C27/02/2024
-
استكشاف أدوات مكتبة stdlib في لغة C19/01/2024
-
مشكلة تهيئة NameNode في Hadoop09/03/2024
المزيد من المعلومات
إذا كنت تبحث عن المزيد من المعلومات حول كيفية تنسيق النص بشكل أفضل، يمكنك استخدام المكتبة
في C++ لمساعدتك في ذلك. على سبيل المثال، يمكنك استخدام setw()
لتعيين عرض العمود، و setfill()
لتعيين الحرف الذي يملأ المساحات الفارغة. كما يمكنك استخدام std::left
و std::right
لمحاذاة النص إلى اليسار واليمين على التوالي. قد تحتاج أيضًا إلى استخدام std::fixed
للتحكم في عرض الأرقام العشرية. إليك مثالًا محتملاً:
cpp#include
#include
#include
// Assuming BOOK is defined somewhere
int main() {
FILE *fp;
fp = fopen("Records.txt","r");
std::cout << std::left << std::setw(12) << "Category" << std::setw(8) << "ID" << std::setw(20) << "Name" << std::setw(20) << "Author" << std::setw(10) << "Quantity" << std::setw(8) << "Price" << std::setw(8) << "Rack" << std::endl << std::endl;
while (fread(&b, sizeof(b), 1, fp) == 1) {
std::cout << std::left << std::setw(12) << b.category << std::setw(8) << b.id << std::setw(20) << b.name << std::setw(20) << b.author << std::setw(10) << b.quantity << std::setw(8) << std::fixed << std::setprecision(2) << b.price << std::setw(8) << b.rackno;
std::cout << std::endl << std::endl;
}
fclose(fp);
return 0;
}
هذا المثال يظهر كيف يمكنك استخدام std::setprecision(2)
لتحديد عدد الأرقام العشرية للأسعار، و std::fixed
لإظهار الأرقام بشكل ثابت. تحتاج إلى تضمين
في البداية لاستخدام هذه الوظائف.