Re: ObjC stdin equivalent? and other questions
Re: ObjC stdin equivalent? and other questions
- Subject: Re: ObjC stdin equivalent? and other questions
- From: Ken Thomases <email@hidden>
- Date: Fri, 10 Jun 2011 22:09:45 -0500
On Jun 10, 2011, at 9:56 PM, William Squires wrote:
> 1st question:
> In regular C, you have the <stdio.h> functions for reading/writing to stdio; printf(), scanf(), etc...
> In C++, you have cin/cout and the overridden '>>' and '<<' operators.
> What does ObjC have (besides NSLog() anyway) that C/C++ doesn't?
> I'm guessing... zilch. You have to use the standard C libraries, right? Or is there an OO way of reading/writing to stdio (and stderr) from a console app? Or use ObjC++...
NSFileHandle has the class methods:
• + fileHandleWithStandardError
• + fileHandleWithStandardInput
• + fileHandleWithStandardOutput
• + fileHandleWithNullDevice
However, NSFileHandle does not have many of the line-oriented or format-oriented mechanisms provided by the C or C++ standard libraries. So, it is often more convenient to use those. Objective-C was built on top of C precisely so that you have access to C language and library features, so there's nothing wrong with using them.
> 2nd question:
> Can a console app control the text 'cursor' in Terminal.app's window solely through stdio? (i.e. are there control codes that clear the screen, locate the cursor at some x,y location, set the text color/brightness (I know the man page reader can, at the very least, change the text brightness), position the cursor at the beginning/end of a line, etc...) Or do apps like vim, emacs, pico, etc... use custom machine-language calls to the darwin core to do this?
> If it helps, under Terminal.app's Prefs | Text, I have "Use bold fonts", "Allow blinking text" and "Display ANSI colors" all checked, and under Prefs | Window I have window size set for 80x24 with unlimited scrollback, and under Prefs | Advanced, I have "Declare terminal as:" set to xterm-color, "Paste newlines as carriage returns" and "Scroll to bottom on input" checked.
You're looking for the "curses" library (or, to be more specific, "ncurses" nowadays).
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/ncurses.3x.html
Regards,
Ken
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden