我是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;
}`
答案 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