C++常量字符*输入
C++ const char* input
我正在'重建'.NET框架,但为了C++(不使用.NET框架,所以它也可以在其他操作系统上运行(。
这意味着我将创建一个类控制台,然后如果该方法在 .NET 框架中称为 WriteLine,我将其全部称为小写,由 _ 分割(如下所示:write_line(
我现在忙于read_line但我被困住了。
我已经尝试了几件事:
static const char * read_line()
{
char input[256];
std::cin >> input;
return std::string(input).c_str();
}
static const char * read_line()
{
char input[256];
std::cin >> input;
return input;
}
但他们都给出了一些奇怪的角色。第一种方法给出(例如(:
您的名字是:╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠α├¶☼☺╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠≡ ╠╠╠╠╠╠╠╠╠╠╠,您的年龄是:╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠α├¶☼☺╠╠╠╠╠╠╠╠╠╠╠
╠╠╠╠╠╠╠╠╠∞ ╠╠╠╠╠╠╠╠第二个给出:
您的名字是:►
╠╠╠╠╠╠╠╠,您的年龄是:╠╠╠╠╠╠╠╠我做错了什么?我也无法让该方法作为字符数组返回。
你返回一个指向本地数组的指针,当函数返回时,该指针将被销毁。最好的解决方案是返回一个字符串对象:
std::string read_word() {
std::string input;
std::cin >> input;
return input;
}
请注意,我还更改了函数名称以匹配它的功能。如果你真的想要一条线,那么你想要
std::string read_line() {
std::string input;
std::get_line(std::cin, input);
return input;
}
如果你真的认为你想返回一个指针,那就再想一想。你几乎肯定不会。
如果你仍然认为你真的这样做,那么你可以返回一个指向静态变量的指针,该指针的持续时间与程序一样长:
// Danger: the returned pointer is only valid until the next call.
// Danger: do not call from multiple threads.
// Danger: any line longer than 255 characters will cause dreadful calamity.
char const * read_line() {
static char input[256];
std::cin.getline(input);
return input;
}
或者动态分配一个数组,并希望调用方记得删除它:
// Danger: the returned pointer must be deleted (with `delete[]`) after use
// Danger: any line longer than 255 characters will cause dreadful calamity.
char const * read_line() {
char * input = new char[256];
std::cin.getline(input);
return input;
}
- 无法在 C++ 中输入字符数组
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 在不使用字符串库的情况下输入字符*
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- C++中输入字符数组的特定验证
- 如果用户在 int 中输入字符,如何使用输入
- 当我们在以下程序(C )中输入字符时,该如何解决
- 如何在结构中输入字符到向量
- 用户输入逻辑运算符符号或数字,如果输入字符或字符串则无效
- 输入字符时忽略回车键
- 在 switch 语句中输入字符以进行C++时用户输入错误
- 使用Back_inserter从任何位置的输入字符中使用Back_inserter进行过滤数组字符串
- 如何在应该显示的printf之前输入字符
- C++ 输入字符而不是 int 会导致无限循环.如何检查错误的输入
- 为什么"keep_window_open()"不等待输入字符?
- 为什么我的程序在输入字符时有一个无限循环
- 当提示输入整数值时输入字符时,为什么程序会中断
- 关闭回显后如何再次回显输入字符
- 忽略输入字符
- 从文件的单行读取输入字符