我的代码似乎什么都不做

时间:2012-11-08 04:17:05

标签: c++

什么都不做,当我调用gets()时,它甚至不让我输入,即使我的IDE声称“语句没有效果”。

#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

int main()
{
char userluv[800], fuusd[800], orig[800], key [51], priv [21];
int tempfussd[800], kint, pint, tint[5], c, lame;

//get the basic info
cout << "key? ";
cin >> key;
cout << "Second key? ";
cin >> priv;
cout << "Your lovely text?:\n";
gets(userluv);

for(c=0; c<=key[c]; c++){
    kint += key[c];
}
for(c=0; c<=priv[c]; c++){
    pint += priv[c];
}

//do stuff to your key
tint[0] = strlen(key) + strlen(priv);
tint[1] = tint[0] * tint[0];

//string to int then do stuff
    for(c=0; c<=userluv[c]; c++){
    tempfussd[c] = userluv[c];
    tempfussd[c] + kint;
    tempfussd[c] * pint;
    tempfussd[c] * tint[1];
}

    cout << "\n" << tempfussd[c] << "\n";

return 0;
}

2 个答案:

答案 0 :(得分:1)

你的gets()从 cin&gt;&gt; priv 的最后一个输入开始。就这样:

cin >> priv;
cout << "Your lovely text?:\n";
cin.get();
gets(userluv);

cin.get();会处理那个\ n。现在退房。

答案 1 :(得分:1)

这三行是​​无效的陈述:

tempfussd[c] + kint;
tempfussd[c] * pint;
tempfussd[c] * tint[1];

您可能在=+后遗漏了*

上述陈述发生在循环中:

for(c=0; c<=userluv[c]; c++){
    tempfussd[c] = userluv[c];
    tempfussd[c] + kint;
    tempfussd[c] * pint;
    tempfussd[c] * tint[1];
}

如果(如评论所示)+=*=是正确的,您可以通过以下方式简化:

for (c = 0; c <= userluv[c]; c++)
    tempfussd[c] = (userluv[c] + kint) * pint * tint[1];