使用gets()让用户进入文件目录来打开文件
Opening a file by getting the user to enter the file directory using 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;
}
我的问题
无论我放入什么都不起作用,我已经从我创建的其他程序中直接复制了文件目录路径,我知道可以工作。有任何想法吗?
fp = fopen("%s,directory","r");
这真是令人费解。为什么要使用 %s
和 ""?直接使用 directory
作为参数即可。例如
fopen(directory, "r"); // make sure _directory_ refers to file for this function to succeed
gets
也被认为是 dangerous.
问题
使用键盘输入打开文件 编写一个 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;
}
我的问题
无论我放入什么都不起作用,我已经从我创建的其他程序中直接复制了文件目录路径,我知道可以工作。有任何想法吗?
fp = fopen("%s,directory","r");
这真是令人费解。为什么要使用 %s
和 ""?直接使用 directory
作为参数即可。例如
fopen(directory, "r"); // make sure _directory_ refers to file for this function to succeed
gets
也被认为是 dangerous.