我想寫一個程序,需要一個字符串作爲命令行參數,然後通過一個函數(str_to_int),需要一個字符串作爲輸入運行所述參數。然而,當我試圖編譯程序,我得到一個警告說C:命令行參數與字符串
initializing 'char *' with an expression of type 'int' [-Wint
conversion]
char* str = atoi(argv[1]);
^ ~~~~~~~~~~~~~
當我運行該程序,我得到一個分段錯誤 我測試過的str_to_int了很多,所以我敢肯定的是,問題在於命令行程序。這是它的代碼。
#include "hw3.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
char* str = atoi(argv[1]);
printf("%d\n", str_to_int(str));
return 0;
}
誰能告訴我什麼,我做錯了什麼?謝謝。
'atoi'返回'int'。 – 2015-01-26 19:38:24
你的代碼需要一個字符串('argv [1]'),將它轉換爲一個'int'('atoi()'),並將結果放入一個字符串('char *')中,然後將其轉換爲'int'('str_to_int()')。這裏的目標是什麼?! – Biffen 2015-01-26 19:39:33
remyabel和Biffen(和編譯器:-))是正確的。 – 2015-01-26 19:41:16