c ++从用户

时间:2018-04-08 14:31:33

标签: c++ templates visual-studio-2012 user-input auto

我是C ++的新手,我正在尝试创建一个程序,该程序从用户获取未知数据类型输入并将其存储在变量中。我正在使用可视工作室编程,代码不断产生错误消息:E0304,LNK2019和LNK1120。

#include "stdafx.h"
#include <iostream>
template <typename T>
T dataEntered() {
T data;
std::cout << "Enter Data" << std::endl;
std::cin >> data;
return data;
}

int main()
{
    auto data = dataEntered();
    std::cout << sizeof(data) << std::endl;
    return 0;
}`

2 个答案:

答案 0 :(得分:0)

Template不是解决方案,除非您以这种方式使用它:

auto data1 = dataEntered<char>();
auto data2 = dataEntered<int>();
std::cout << sizeof(data1) << std::endl;
std::cout << sizeof(data2) << std::endl;

您应该传递type参数,以便在编译时知道它。

如果您在run-time我建议您将数据读为 string 之前不知道数据,请将function写入解析< / strong>你需要它。

答案 1 :(得分:0)

模板和汽车在编译时推断,其中汽车基本上被改变为从初始化值推导出的类型,并且为模板参数中使用的每种类型生成模板化版本的版本。

如果需要对输入执行操作,请在读取之前确定输入的类型。您也可以将其输入到字符串中并稍后解析。

如果您不需要解析输入,只需输入字符串。

例如,如果输入的第一个字符是数字,则可能是数字。

我的代码:

cordova build