C++程序设计语言(特别版)中的一个习题
第七章的练习题9
参照答案的实现方式在vc下编译报错
具体代码如下:
int main(int argc, char* argv[])
{
char* key = (argc >= 2) ? argv[1] : "";
char ch;
size_t key_length = (argc >= 2) ? strlen(key) : 1;
for (size_t k = 0; cin.getc(ch); k = (k+1)%key_length)
cout.putc(ch ^ key[k]);
return 0;
}
编译报错:
test.cpp(13) : error C2059: syntax error : '('
test.cpp(13) : error C2039: 'k' : is not a member of 'basic_istream<char,struct std::char_traits<char> >'
test.cpp(13) : error C2039: 'k' : is not a member of 'basic_istream<char,struct std::char_traits<char> >'
test.cpp(13) : error C2039: 'key_length' : is not a member of 'basic_istream<char,structstd::char_traits<char> >'
test.cpp(13) : error C2143: syntax error : missing ';' before ')'
test.cpp(14) : warning C4003: not enough actual parameters for macro 'putc'
Error executing cl.exe.
test.exe - 5 error(s), 1 warning(s)
期待高手指点:) 多谢了!
PS:将
cin.getc(ch);和cout.putc(ch ^ key[k]);用get() 和put()替换编译可以通过
那C++标准库的cin 和 cout为什么不行呢
希望高手介绍个C++标准库的手册,CSDN感觉MFC的比较多,乱!