C语言 怎么按照用户输入的文本文档的名称用C打开那个文本文档

比如用户输入test.txt然后我们用C程序执行打开那个文档这样好像打不开字符串后面的\0去不掉... 比如用户输入test.txt 然后我们用C程序执行打开那个文档

这样好像打不开 字符串后面的\0去不掉
展开
 我来答
唯爱丶等忧伤
推荐于2016-09-27 · TA获得超过193个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:196万
展开全部

如下:

#include<stdio.h>
#include<stdlib.h>
 
int main(void)
{
    FILE *fp;
    char name[20];
    char getf;
 
    printf("请输入文件名字:");
    gets(name);
 
    if((fp=fopen(name,"r"))==NULL)
    {
        fprintf(stderr,"Can't found %s file",name);
        exit(0);
    }
    puts("\n--------文本内容--------\n");
    while((getf=fgetc(fp))!=EOF)
        putch(getf);
    puts("\n--------文本结束--------\n");
    fclose(fp);
    return 0;
}

追问
不行啊 那个gets接受的不是字符串吗  比如你输入test.txt 后面还会多出了一个\0 变成test.txt\0 怎么可以打开文件档呢
追答

gets()函数会在末尾添加空字符,可是fopen的第一个文件路径参数会忽略末尾的空字符,但不会忽略 换行符等符号

就像   "c:/1.txt" 可以作为路径,"c:/1.txt'\0" 也可以作为路径,"c:/1.txt'\n" 这个不能作为路径。

c的细节问题最多了,实践才是真理。多尝试。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式