我正在阅读以下代码:evaluate.cpp来自以下网站:neural networr
我正在尝试将以下代码从scanf
转换为cin
:
for(int a=0;a<64;a++) {
if(scanf("%f+", &NNetwork.InputUnits[a])!=1) {
printf("Input Error!<br>\n"); return -1;
}
}
C ++:
for(int a=0;a<64;a++) {
cin >> NNetwork.InputUnits[a];
if (NNetwork.InputUnits[a] != 1) {
cout << "Input Erro";
return -1;
}
}
以下转换是否正确?
答案 0 :(得分:1)
您的翻译不正确。
scanf
。这是一个更正确的翻译:
for (unsigned int a = 0; a < 64; ++a)
{
bool failure = true;
if (cin >> NNetwork.InputUnits[a])
{
// Need to scan for the '+'.
char plus;
if (cin >> plus)
{
// edit 1: added checking for '+' character after reading.
if (plus == '+')
{
failure = false;
}
}
}
if (failure)
{
cerr << "Input Error!<br>\n";
return -1;
}
}
答案 1 :(得分:0)
cin.fail()可用于检查状态。
此检查看起来不对: if(NNetwork.InputUnits [a]!= 1)