如何使用char将字符串传递给fopen C.

时间:2014-09-03 06:08:08

标签: c fopen

我尝试使用以下代码将字符串传递给字符串并打开.txt文件,以便我可以阅读它的内容。我不知道为什么以及如何利用这个fopen实际读取test.txt

int main(){

char input[60];


char a;
FILE *file;

printf("Hello!\n");

    enter code here

printf("Pelase input a file name in .txt format: \n");
gets(input);

printf("%s",input);
printf("\n");

**file = fopen("%c,input","rt");** 

// file = fopen("%s",输入)< - 不起作用

// file = fopen("%s",input,rt)< - 错误

if (file){

  while((a=fgetc(file))!=EOF){

        printf("%c",a);
    }
    fclose(file);


}
}

1 个答案:

答案 0 :(得分:0)

如果要将".txt"添加到用户输入的内容中,请打开:

gets (input);
strcat (input, ".txt");
file = fopen (input, "r");

不是我主张使用gets或者在没有先检查大小的情况下盲目附加到缓冲区,但这基本你需要做什么。


其他问题:

fgetc()的返回值是,a的类型应为int

gets()功能本质上是不安全的。使用fgets()或找到safe user input function

不要盲目追加缓冲。与使用gets()和某些scanf()格式字符串一样,它将允许代码中的缓冲区溢出。