[英]Running C scripts with terminal instead of Xcode
目前,我正在使用Xcode在Mac上開發幾個C程序。 但是,有1個問題。 我的學習要求我通過編碼使用某種輸入字段。 因此,例如,如果用戶要運行該程序10次或希望該程序創建10個答案。 我使用“ atoi(argv [1])”只是為了從用戶那里獲取輸入。
這正是問題所在。 一旦運行該程序,它就會開始出現錯誤,這是我問的正常現象,因為他正在等待輸入而未收到輸入或其他內容。 無論如何,我試圖通過以下鏈接解決此問題: 如何從終端運行命令行應用程序?
不幸的是,這也沒有解決。 我已經嘗試過重新安裝xcode,因為僅在終端中輸入gcc也不起作用,但是每次應用商店自動為我安裝它時。
有誰能解決我的問題。 我非常感激,因為下個星期五我還有另一個截止日期:(如果用戶輸入不起作用,我將不會獲得足夠的成績。
再次感謝您的幫助!
問候,
基普·斯克里迪
編輯:澄清問題。 運行腳本時,我希望它在終端中彈出,並且有一個輸入字段被要求輸入。 目前,由於缺乏輸入,他立即崩潰。 他不等待參數從用戶傳遞。 他正在跳過那部分
如何從Xcode IDE將命令行參數傳遞給您的程序
/phi
作為第一個參數,然后將10
作為第二個參數。 值得注意的是:在這里,您還可以在啟動時指定程序的當前工作目錄,而不是Xcode在構建二進制文件時使用的較長的臨時路徑。 為此:
結合在程序中修復參數處理功能,可以使您正常運行。
在我看來,您想從命令行獲取參數,如果缺少參數,請提示用戶輸入參數
假設您需要以下參數:數字單詞數字
#include <stdio.h>
#include <string.h>
int number1;
char word[128];
int number2;
int main(int argc, const char **argv)
{
if (argc == 4)
{
number1 = atoi(argv[1]);
strcpy(word, argv[2]);
number2 = atoi(argv[3]);
}
else
{
do
printf("Enter number word number: ");
while (scanf("%d %s %d", &number1, word, &number2) != 3);
}
printf("I got %d '%s' %d\n", number1, word, number2);
return 0;
}
這使:
$ ./test
Enter number word number: 1 andy 12
I got 1 'andy' 12
$ ./test 2 pandy 56
I got 2 'pandy' 56
請注意,在此示例中,錯誤檢查效果很差,並且可以進行很多改進(不使用atoi()
是啟動的一種方法)。
聽起來就像RageD指出的那樣,您需要在程序中檢查argc,否則在啟動參數不足的程序時會導致問題。
gcc是c編譯器-它生成可執行文件。 當您在Xcode中點擊“運行”時,它將編譯您的程序,然后運行創建的可執行文件。 創建的可執行文件的名稱與您的Xcode項目名稱相同。
要從命令行運行您在Xcode中構建的程序:
結果看起來類似於下面的代碼片段(對於我的“ MyCommandLineApp”項目):
$ /Users/pliskin/Library/Developer/Xcode/DerivedData/MyCommandLineApp-hbpuxhguakaagvdlpdmqczucadim/Build/Products/Debug/MyCommandLineApp argument1 argument2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.