通过让用户使用gets()进入文件目录来打开文件

时间:2016-03-31 21:13:33

标签: c string file gets

问题

使用键盘输入打开文件 编写一个C程序,向用户询问文件的名称(名称可能包含 目录路径)并尝试打开该文件。程序显示消息“文件 打开!“或”打开文件时出错“(程序没有读取文件,只是试图打开 它)。使用gets()来获取用户的输入

因此,使用下面的代码,我尝试读取文件目录路径,然后将此文件目录路径复制到fopen(),然后确认文件是否已打开。用户使用gets()。

输入文件目录路径
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char directory[100];
    printf("Please enter the directory path of the file you wish to open.\n");
    gets(directory);
    fp = fopen("%s,directory","r");
    if(fp==NULL)
    {
        printf("\nCannot open file.");
    }
    else
    {
        printf("\nFile open!");
    }
    return 0;
}   

我的问题

无论我放入什么都不起作用,我直接从我创建的其他程序中复制了文件目录路径,我知道工作。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

  

fp = fopen(“%s,目录”,“r”);

这真令人困惑。你为什么使用%s和“”?只需直接使用directory作为参数即可。 e.g。

fopen(directory, "r"); // make sure _directory_ refers to file for this function to succeed

gets也被视为dangerous