文件路径作为C中的用户输入

时间:2016-12-03 15:45:01

标签: c string input arguments fopen

我无法找到问题的具体答案。我真的很低级,刚刚开始并有一个课程,我学会了从CodeBlocks创建文件。我带回家的代码,但它不会工作,因为它不在同一台计算机上。因此,我们的想法是创建一些允许用户为新形成的.txt文件选择路径的东西。当我手动插入“c:\ example.txt”之类的东西而不是s时,代码会创建一个文件“example.txt”但是当我将它作为输入发送时,它根本不会。为什么呢?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE *a=NULL;
    char s[50];
    puts("Enter the path of the file: ");
    fgets(s,50,stdin);
    a=fopen(s,"w");
    if(a==NULL)
        exit(1);
    else
        printf("Successful input");
}

1 个答案:

答案 0 :(得分:0)

  

所以整个问题是fgets函数在最后添加\n?有没有其他想法让这项工作?

您可以替换

    fgets(s,50,stdin);

    scanf("%49[^\n]%*c", s);

- 只要其大小允许,就会将\n中的输入读取为s,并消耗\n,这样它就不会妨碍以后输入。