У меня возникли проблемы в отношении FOPEN в С.Что касается FOPEN в C
Я этот код, который считывает конкретный файл из директории
FILE *ifp ;
char directoryname[50];
char result[100];
char *rpath = "/home/kamal/samples/pipe26/divpipe0.f00001";
char *mode = "r";
ifp = fopen("director.in",mode); %director file contains path of directory
while (fscanf(ifp, "%s", directoname) != EOF)
{
strcpy(result,directoname); /* Path of diretory /home/kamal/samples/pipe26 */
strcat(result,"/"); /* front slash for path */
strcat(result,name); /* name of the file divpipe0.f00001*/
}
До этого момента мой код работает отлично создания строки который выглядит «/home/kamal/samples/pipe26/divpipe0.f00001».
Проблема возникает, когда я пытаюсь использовать «результат», чтобы открыть файл. Это дает мне ошибку. Вместо этого, если я использую «rpath», он отлично работает, хотя обе строки содержат одну и ту же информацию.
if (!(fp=fopen(rpath,"rb"))) /* This one works fine */
{
printf(fopen failure2!\n");
return;
}
if (!(fp=fopen(result,"rb"))) /* This does not work */
{
printf(fopen failure2!\n");
return;
}
Может кто-нибудь рассказать, почему я получаю эту ошибку?
Вы должны * всегда * протестировать с ошибкой 'fopen' –
Вы должны использовать' perror' или 'strerror' не просто' printf'on failure of 'fopen' –
В этом вопросе на заднем плане есть конечное пространство строка. Распечатайте строку 'result' с двоеточиями с обеих сторон, чтобы убедиться, что у нее нет лишних пробелов (например, конечная новая строка). –