我正在开发一个程序,用户输入文件路径,然后将带有文件名的附加字符串连接到该路径。我将把它用于同一目录中的多个文件。 我使用 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/