【问题标题】:I can not change current path in c, visual studio我无法在 c、visual studio 中更改当前路径
【发布时间】:2016-05-12 19:41:17
【问题描述】:

我正在使用 C 语言开发一个应用程序,使用 Visual Studio 2015 从路径获取文件。

想法是我运行应用程序并编写命令:list path

应用程序应该转到该路径并列出那里的所有文件。一切都很好,但我需要将文件保存在项目文件夹中的文本文件中。

我的问题是我无法从我在命令中写入的路径返回到项目路径。

例如,我在C:\\Visual Studio\\projects\\application 有项目,我想在此处创建文本文件,但是当我从控制台中的键盘写入该路径时,例如:list C:\\MinGWStudio,文本文件将在那里创建.

代码:

printf("Comanda a fost executata cu succes!\n");
SetCurrentDirectory(argv[0]);
FILE *outFile;
outFile = fopen("list.txt", "w+");
printf("%s\n", lista->cale);
fprintf(outFile, "%s\n", lista->cale);

【问题讨论】:

  • 请检查argv[0],这显然不是您认为的那样。经常检查fopen()的返回值,你可能没有目标目录的权限,会失败。

标签: c file path visual-studio-2015


【解决方案1】:

显然你想要

SetCurrentDirectory(argv[1]);
/*                       ^ 1 not 0 */

argv[0] 是当前程序的名称,所以它不是目录。另外,我不知道SetCurrentDirectory() 是否返回或返回什么,但如果我是 API 设计者,我肯定会让它返回一些可以通知调用者失败或成功的东西。

【讨论】:

  • @SebiBurchi - 如果 argv[1] 为空,那么您没有命令行参数 - 请参阅帖子中的 cmets
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
相关资源
最近更新 更多