我有一個需求,我需要從命令行調用一個C++應用程序,並且需要將int類型的二維數組傳遞給它。任何人都可以請讓我知道該怎麼做,以及如何使用的argv參數提前使用命令行將二維數組傳遞給C++
感謝解釋它在C++應用程序。
我有一個需求,我需要從命令行調用一個C++應用程序,並且需要將int類型的二維數組傳遞給它。任何人都可以請讓我知道該怎麼做,以及如何使用的argv參數提前使用命令行將二維數組傳遞給C++
感謝解釋它在C++應用程序。
在argv
你可以只傳遞一個一個維數組,包含字符串,它是
char* argv[]
所以,你不能真正通過二維數組,但你可以「模擬」了。
例如,通過2個參數,說什麼是矩陣的大小 - 行數和列數,然後通過所有的元素,一個接一個。
然後分析你的程序的參數,知道你會用什麼樣的格式。
例如:如果你想傳遞
1 2 3
4 5 6
您可以運行您的程序是這樣的:
./my_program 2 3 1 2 3 4 5 6
這樣,你就會知道,那argv[1]
是多少的行數,argv[2]
s是列數,它們是二維數組的所有元素,從左上角開始。
不要忘記,argv
是數組,含有char*
指針。換句話說,您需要轉換所有參數int
s。
我會建議通過文件作爲唯一的參數。或者@j_random_hacker建議在stdin上使用相同格式的數據。如果沒有人需要編輯它,它可能是一個二進制文件。一種可能的格式:
4字節=第一尺寸的大小 4字節=第二維的尺寸 4字節*的陣列
讀取時的第二=內容第一*大小的大小,一切都對齊。只需讀取每四個字節的int並如上解釋。
如果它需要人類可讀,我會做csv或空格分隔。在這種情況下不需要指定尺寸,因爲每一行都以換行符結束。
可能更容易提供標準輸入數組。 –