01/10/2018, 11:11

Lệnh fopen trong C?

FILE*fopen(const char * filename,const char * mode);
Mong các cao nhân giải thích dùm em cái const char *filenam với const char *mode,nếu bỏ const đi có sao ko ?
Trong sách nó ví dụ là
FILE *fptr:
fptr=fopen(“mylife”,“r+t”);
Sao thấy ko giống cấu trúc lắm ? Mong mn giúp em ạ!

HK boy viết 13:14 ngày 01/10/2018

mode là kiểu mở file.
r là mở file để đọc
w là mở file để ghi

Phải có mode nhé.

BOYKAV viết 13:12 ngày 01/10/2018

ý mình là trên cấu trúc là const char * filename mà ở dưới thì ko có , trong trường hợp này là gì bạn?

HelloWorld viết 13:17 ngày 01/10/2018

const char * filename
đưa vào 1 con trỏ kiểu char, trỏ đến nơi chứ đừng dẫn mở file, bỏ const nghĩa là hằng con trỏ , k được thay đổi nội dung ở địa chỉ mà con trỉ filename trỏ tới trong hàm đó

rogp10 viết 13:13 ngày 01/10/2018

Sao thấy ko giống cấu trúc lắm ? Mong mn giúp em ạ!

Lên cppreference đọc cho chắc cú.

BOYKAV viết 13:18 ngày 01/10/2018

bạn giải thích dùm luôn sao Ví dụ và cấu trúc quy định là ko giống nhau ?
cái có * cái ko có *?

BOYKAV viết 13:17 ngày 01/10/2018

đang hỏi về C mà bạn ?

Khoa NTA viết 13:11 ngày 01/10/2018

Theo mình nghĩ thì cái có/không const (+ con_trỏ) trong prototype để cho người sử dụng hàm biết là hàm đó không/có thay đổi nội dung con trỏ thôi (cho dù không có const thì kết quả cũng không thay đổi).
Ví dụ, hàm strcpy có prototype như sau: char *strcpy( char *dest, const char *src ); Nhìn vào là có thể thấy được dest sẽ bị thay đổi nội dung còn src thì không. Là vậy đó

Mấy hàm thuộc C chuẩn như thế này thì bạn nên tìm kiếm trên Google thì hay hơn hoặc cũng có thể đọc ở đây.

P/s: mình nghĩ nên tránh gọi “hàm” là lệnh, vì khi bạn muốn tìm kiếm bằng tiếng anh thì chỉ có fopen function chứ không có fopen command!

BOYKAV viết 13:12 ngày 01/10/2018

Trong cái bạn mới đưa á

  1. Opens a file indicated by filename and returns a pointer to the file stream associated with that file. mode is used to determine the file access mode.
    thì có đoạn pointer to the file stream associate with that file…mình ko hiểu file stream là cái gì ? nếu có tài liệu về nói cho mình xin
    P/S: mình bị rối chỗ stream(cái j mà có chữ stream),thấy nó là ngán à
HelloWorld viết 13:20 ngày 01/10/2018

Protptype:
FILE*fopen(const char * filename,const char * mode);

Ex

FILE *fptr:
fptr=fopen("mylife","r+t");
Sao thấy ko giống cấu trúc lắm ? Mong mn giúp em ạ!

m thấy giống mà?
hàm fopen trả về 1 con trỏ kiểu FILE, tham sô vào là 1 xâu đường dẫn file, 1 xâu kiểu mở file

rogp10 viết 13:21 ngày 01/10/2018

Vừa có C vừa có C++ mà tốt hơn cplusplus vạn lần.

Khoa NTA viết 13:23 ngày 01/10/2018

Bạn cứ hiểu đơn là khi gọi hàm thì nó sẽ nhờ hệ điều hành “mở” file và trả về cho bạn 1 thứ-gì-đó (filestream) để có thể thao tác (như là) với file thật trên đĩa cứng. Mode là chế độ truy cập file đó thôi.

Bài liên quan
0