• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 489
  • Last Modified:

How to use a default value for a string input from console in ANSI c++

Does anybody knows a standard function in ANSI C++ which accepts a default value of the input value for reading a string from console?

For example I need that the user inputs something like a name but already gets into the console an default name ("John Doe") which he can change. Is there such a function or code block available?




0
bfunieru1
Asked:
bfunieru1
  • 3
  • 2
1 Solution
 
evilrixSenior Software Engineer (Avast)Commented:
Are you referring to passing the "name" as a command line parameter or maybe reading from stdin when starting the process? You question is a little unclear.

FWIW, there are no "standard" ANSI C++ functions that will do what you ask but once your requirement is understood it shouldn't be too hard to cobble a solution together for you.
0
 
bfunieru1Author Commented:
The later. Not a command line parameter after program name.

It should be something as what one get from a function as cin or gets.

0
 
ZoppoCommented:
Hi,

if I understand correctly you want the user to input a name, but if i.e. the user just hits ENTER a default name should be used, right?

If so see the attached code ...

Hope that helps,

ZOPPO
std::string getName( const std::string strDefault )
{
	std::string strName;
	std::cout << "Enter your name [default='" << strDefault << "']: ";
	getline( std::cin, strName );

	if ( false != strName.empty() )
	{
		strName = strDefault;
	}

	return strName;
}

int main(int argc, char* argv[])
{
	std::string strName = getName( "John Doe" );

	std::cout << "Entered name: '" << strName << "'" << std::endl;

	return 0;
\

Open in new window

0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
bfunieru1Author Commented:
This solution can also work for sure.
I will prefer if it will be possible to  change something in the default string if for example instead of the short "John Doe" is something much longer which will make new writing very anoying.

0
 
bfunieru1Author Commented:
To make it more clear it should act similar to a windows textbox which has a default text which one can change or if it is OK just press ENTER and send it.
0
 
ZoppoCommented:
Sorry, I don't know if such a functionality exists or if it is even possible to do such thing in standard C++.

The problem IMO is that C++'s 'cin' simply retrieves the entered data from the used console (i.e. in Windows 'cmd.exe') - but, any editing functionality is handled by the console, there IMO is no chance to anyhow affect it using and STL functionality.

It may be that you can do something similar as you need using a CURSES library (but i cannot guarantee this since I never used such a library) - see more about this here: http://en.wikipedia.org/wiki/Curses_%28programming_library%29

ZOPPO
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now