新人在這裏。我正在嘗試使用Mac OS X學習C++,並且遇到嚴重問題讓調試器在Eclipse或Netbeans中工作(出於某種瘋狂的原因無法獲得gdb),所以決定嘗試使用Xcode。我有一個簡單的排序程序,但不知道如何獲得輸出文件。這是我迄今爲止所做的:如何在Xcode中使用參數
- 創建一個名稱列表並將其保存在Sort文件夾中作爲Names.txt。
- 進入Xcode的「編輯方案」選項卡並添加了兩個參數Names.txt和Output.txt。
- 運行程序時沒有錯誤或問題,但Output.txt不會被創建。
- 在Xcode中,我使用「添加文件進行排序」將Names.txt拉入,並創建了一個空白的Output.txt文件並將其保存在Sort文件夾中。然後,我也將Output.txt拖入Xcode中。
- 運行程序並仍然有一個空白的Output.txt文件。
這是因爲寫的代碼:我相信代碼是正確的,因爲它工作在Eclipse
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// Constants
#define BUFFER_SIZE 50
#define ARRAY_SIZE 20
// Global variables
int numElements = 0;
//function prototypes
void sort(string elements[]); // sort an array of strings in ascending order
void swap(string& s1, string& s2); // swap s1 and s2
int main(int argc, char *argv[])
{
char buffer[BUFFER_SIZE];
string listOfNames[ARRAY_SIZE];
string inputFileName;
string outputFileName;
ifstream inputFile;
ofstream outputFile;
if(argc != 3) {
cout << "Error: Please enter input and output files ";
cout << "as command line arguments !" << endl;
}
else {
inputFileName = argv[1];
outputFileName = argv[2];
inputFile.open(inputFileName.c_str());
outputFile.open(outputFileName.c_str());
// Read names from input file and store into array
while(!inputFile.eof() && numElements < (ARRAY_SIZE - 1)) {
inputFile.getline(buffer, BUFFER_SIZE);
string p = string(buffer);
listOfNames[numElements] = p;
numElements++;
}
// Sort elements in array
sort(listOfNames);
// Print elements in array to output file
for(int i = 0; i < numElements; i++) {
outputFile << listOfNames[i] << endl;
}
inputFile.close();
outputFile.close();
}
cout << "Sorting done!!!" << endl;
return 0;
}// end main
// perform bubble sort
// sort names in ascending order
void sort(string elements[]) {
bool change = true;
while(change) {
change = false;
for (int i = 0; i < (numElements - 1); i++) {
if (elements[i] > elements[i + 1]) {
swap(elements[i], elements[i+1]);
change = true;
}
}
}
}
// swapping 2 string
void swap(string& s1, string& s2) {
string temp = s1;
s1 = s2;
s2 = temp;
}
...我只是不知道如何讓Xcode中產生輸出文件。
你怎麼知道'Output.txt'沒有被創建?你在哪裏指定文件路徑? – nhgrif
我在Sort的編輯方案中添加Output.txt作爲參數。它應該建立在與Sort.cpp相同的文件夾中嗎?請讓我知道如果我錯了,但我在我的電腦上找不到任何Output.txt,除了我自己製作的副本,它仍然是空白的。 – user2722670
如果您使用的是最新的mac os,那麼您應該使用'lldb',而不是使用'gdb'。您可以使用一系列'getcwd'來確定應用程序的運行位置以及您應該在哪裏找到該文件。 – Petesh