c - 修改用户输入文件路径以扫描C中同一目录中的文件

标签 c string file filepath data-manipulation

我正在开发一个程序,用户输入文件路径,然后将带有文件名的附加字符串连接到该路径。我将把它用于同一目录中的多个文件。 我使用 printf 语句只是为了查看操作是否有效,但是当显示输出时文件路径被打印两次,然后在末尾添加文件名。例如

输入文件路径为C:\Documents\

输出出现C:\Documents\C:\Documents\HR_1.txt

如何纠正这个问题?

相关代码如下

int main()
{
            char folder[50]="";
            printf("Please type file location\n");
            printf("An example of file location is C:\\Documents\\projects\\[Folder]\\");
            printf("\n");
            scanf("%s",folder);
            printf(folder);

            /*Clearing Heart rate file names, opening file*/
            FILE*HR1=NULL;
            printf(strcat(folder,"HR_1.txt"));
    }
}

最佳答案

您将两次调用 printf 的输出混合在一起。

printf 的第一个参数应该始终是字符串文字,而不是变量。这可以防止意外的转义序列被解释,并允许您在格式中添加换行符。

因为您对 printf 的两次调用(一次在附加之前,一次在附加之后)不包含换行符,因此它们出现在同一行上。

所以改变这个:

        printf(folder);
        ...
        printf(strcat(folder,"HR_1.txt"));

致:

        printf("%s\n", folder);
        ...
        printf("%s\n", strcat(folder,"HR_1.txt"));

输出:

C:\Documents\
C:\Documents\HR_1.txt

关于c - 修改用户输入文件路径以扫描C中同一目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604703/

相关文章:

c - 迭代链表

c - 递归二进制搜索函数不会为数组中不存在的值返回 -1

python - 字符串连接 : Putting large chuck of text in Python code

bash - 基于公共(public)字段(IP 地址)连接两个文本文件

java - 如何在Java中有效地到达文本文件的末尾?

ios - 链接器错误 - 尝试链接到 arm,但链接器使用 x86

C - 将值返回给 main

Java特殊字符替换

创建一个程序,要求用户输入名称并使用 C 创建 10 个名称序列化的文件

java - 遍历Java中的所有文件