คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
buffer เป็นไทป์อาร์เรย์ โดยนิยามถ้าคุณใช้ชื่อของอาร์เรย์โดยไม่มีก้ามปู [ ] มันหมายถึง address ของอาร์เรย์นั้น
char *Getstring() หมายความว่า ฟังก์ชันนี้ return pointer ไม่ได้หมายความว่าฟังก์ชันเป็น pointer
ดังนั้น return buffer จะคืน address ของอาร์เรย์ buffer ไปให้ผู้เรียก
char *Getstring() หมายความว่า ฟังก์ชันนี้ return pointer ไม่ได้หมายความว่าฟังก์ชันเป็น pointer
ดังนั้น return buffer จะคืน address ของอาร์เรย์ buffer ไปให้ผู้เรียก
▼ กำลังโหลดข้อมูล... ▼
แสดงความคิดเห็น
คุณสามารถแสดงความคิดเห็นกับกระทู้นี้ได้ด้วยการเข้าสู่ระบบ
C++ มีส่วนที่ไม่เข้าใจ รบกวนด้วยครับ
#include <conio.h>
class CFile
{
FILE *fp;
char buffer[256];
public:
CFile (char fname[256]
{
fp=fopen (fname,"rt");
}
int NotEnd()
{
if( !feof(fp))
{
fgets(buffer,256,fp);
return 1;
}
else
{
return 0;
}
}
char *Getstring() //ไม่เข้าใจส่วนนี้ครับ buffer ไม่ได้เป็น pointer ทำไมต้องให้ฟังชั่นประกาศเป็นpointer ด้วยครับ
{ // รบกวนขอคำจำกัดความที่จะอธิบายจุดนี้ให้หน่อยได้มั้ยครับ ไปต่อไม่ได้จริงๆ
return buffer; // ขอขอบคุณล่วงหน้านะครับ
}
~CFile()
{
fclose(fp);
}
};
void mani()
{
CFile f1("data.txt"), f2("info.txt");
while(f1.NotEnd())
{
printf("%s",f1.GetString());
}
while(f2.NotEnd())
{
printf("%s",f2.GetString());
}
getch();
}