2016-05-12 61 views
0

我正在使用Visual Studio 2015從C中獲取文件的應用程序。我不能更改C,Visual Studio中的當前路徑

想法是我運行該應用程序,然後編寫命令: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); 
+1

請檢查'argv [0]',這不是你顯然認爲它。總是檢查'fopen()'的返回值,你可能沒有目標目錄的權限,並且會失敗。 –

+0

使用調試器。 – alk

+0

[char \ * argv \ [\]是什麼意思?](http://stackoverflow.com/questions/16666353/what-does-char-argv-means) –

回答

0

顯然你想

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

argv[0]是當前程序的名稱,所以它不是一個目錄。另外,我不知道SetCurrentDirectory()是否返回,什麼時候返回,但是如果我是API設計者,當然我會讓它返回一些能夠告訴調用者失敗或成功的東西。

+0

可能重複不工作,因爲argv [1]爲null –

+0

@SebiBurchi - 如果argv [1]爲null,那麼您沒有命令行參數 - 請參閱您的文章中的評論 – KevinDTimm

相關問題