- #1
00PS
- 30
- 0
I am in a C++ class, programming a command line utility, and I can't figure out how to open and read from an input file in xcode. any help?
Coin said:Is this a console app or an OS X (Carbon/Cocoa) app?
If it's a console app you want to use the ifstream classes. Look for something like "ifstream example" on google. (Alternately you can use fopen/fclose and the related C methods.)
Coin said:The problem is most likely that the "present working directory" when your program runs is not what you think it is. You need to either:
- Specify the full path of the file, i.e. something like /Users/oops/filename.txt
- Move the file you want to open into the "present working directory" of your program. I believe you can find this by looking in the "build" directory which is in the same directory as your xcode file, then looking inside "debug".
chroot said:Learn how to use your shell.
- Warren
[Jons-Mac-Pro:~/Documents/c++] jtbell% ls
csv.cpp csv.dat
[Jons-Mac-Pro:~/Documents/c++] jtbell% cat csv.cpp
// Demonstrates using getline() and a stringstream to read a file
// of comma-separated values.
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main ()
{
ifstream inFile ("csv.dat");
string line;
int linenum = 0;
while (getline (inFile, line))
{
linenum++;
cout << "\nLine #" << linenum << ":" << endl;
istringstream linestream(line);
string item;
int itemnum = 0;
while (getline (linestream, item, ','))
{
itemnum++;
cout << "Item #" << itemnum << ": " << item << endl;
}
}
return 0;
}
[Jons-Mac-Pro:~/Documents/c++] jtbell% cat csv.dat
8/29/2008,19.54,19.6,19.28,19.38,11204900,19.38
8/28/2008,19.48,19.76,19.38,19.65,11729500,19.65
[Jons-Mac-Pro:~/Documents/c++] jtbell% g++ csv.cpp -o csv
[Jons-Mac-Pro:~/Documents/c++] jtbell% ls
csv csv.cpp csv.dat
[Jons-Mac-Pro:~/Documents/c++] jtbell% ./csv
Line #1:
Item #1: 8/29/2008
Item #2: 19.54
Item #3: 19.6
Item #4: 19.28
Item #5: 19.38
Item #6: 11204900
Item #7: 19.38
Line #2:
Item #1: 8/28/2008
Item #2: 19.48
Item #3: 19.76
Item #4: 19.38
Item #5: 19.65
Item #6: 11729500
Item #7: 19.65
[Jons-Mac-Pro:~/Documents/c++] jtbell%
What should I do about the spaces in the directory?
00PS said:Apparently, you need to put the argument 'int argc, char * const argv[]' in int main.
To add an input file to your Xcode project, first open your project in Xcode. Then, go to File > Add Files to [Project Name] and select the input file you want to add. Make sure the file is added to the correct target and click "Add".
Yes, Xcode supports various types of input files such as text files, images, audio files, and more. You can add these files to your project by following the same steps as adding any other file.
To access the input file in your code, you can use the file's path or URL. Xcode also provides classes and methods for working with specific types of input files, such as `NSData` for binary files and `NSString` for text files.
Yes, you can modify the input file within Xcode. You can make changes to the file's contents by opening it in Xcode's editor and saving the changes. You can also use Xcode's built-in tools, such as the Asset Catalog, to modify certain types of input files.
To remove an input file from your Xcode project, select the file in the project navigator and press the "Delete" key on your keyboard. Make sure to select "Remove Reference" instead of "Move to Trash" when prompted. This will remove the file from the project but won't delete it from your computer.