新人来了。我正在尝试使用 Mac OS X 学习 C++,并且在让调试器在 Eclipse 或 Netbeans 中工作时遇到严重问题(由于某种疯狂的原因无法获得 gdb),因此决定尝试使用 Xcode。我编写了一个简单的排序程序,但不知道如何填充输出文件。这是我到目前为止所做的:
- 创建了一个名称列表并将其作为 Names.txt 保存在排序文件夹中。
- 进入 Xcode 中的“编辑方案”选项卡并添加两个参数 Names.txt 和 Output.txt。
- 运行程序没有错误或问题,但没有创建 Output.txt。
- 在 Xcode 中,我将 Names.txt 与“添加文件以进行排序”一起拉入,还创建了一个空白的 Output.txt 文件并将其保存在 Sort 文件夹中。然后我也将 Output.txt 拉到 Xcode 中。
- 运行程序,仍然有一个空白的 Output.txt 文件。
这是编写的代码:
#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;
}
我相信代码是正确的,因为它在 Eclipse 中工作......我只是不知道如何让 Xcode 生成输出文件。