Tôi đã tìm kiếm trên diễn đàn và không thể tìm thấy câu trả lời cho vấn đề này. Nó có vẻ là phổ biến, nhưng không ai trong số các bản sửa lỗi được đề cập được áp dụng.fopen trả về đối số không hợp lệ trong C
Đây là mã của tôi để mở một tập tin:
#include <stdio.h>
#include <string.h>
void main() {
FILE *input;
char path[200];
printf("Enter the full file path and file name in the following format:"
"\nC:\\Users\\Username\\etc......\\filename.extension\n");
fgets(path, 200, stdin);
printf("%s",path);
input=fopen(path,"r");
if (input==NULL) {
perror("The following errors were encountered");
return(-1);
}
}
printf(%s,path)
đúng sẽ hiển thị đường dẫn và tên của tập tin tôi muốn mở, nhưng fopen luôn trả về tham số không hợp lệ. Tôi cũng đã thử sử dụng một con trỏ đến đường dẫn trong fopen, nhưng điều này luôn luôn treo chương trình.
Điều này là do 'đường dẫn' sẽ chứa một ký tự dòng mới ... – isedev
BTW:' void main' là xấu, sử dụng 'int main' thay thế. Ngoài ra, 'return' không phải là một hàm, và do đó cần n dấu ngoặc đơn xung quanh đối số của nó. – Deduplicator
Lưu ý phụ: bạn trả về giá trị '-1' khi chính được khai báo là void. Đừng làm thế. Khai báo chính là int và trả về một cái gì đó từ tất cả các đường dẫn mã. Trong khi đó không phải là lỗi phá vỡ, đó là phong cách xấu. – jpw