什么都不做,当我调用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;
}
答案 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];