注册 登录
编程论坛 C++教室

初学c++ primer遇到的问题

panxiang88 发布于 2007-07-23 23:09, 569 次点击
1.书上有一道例题,其中有一句是这样的
while (cin >> word)
其中,word是个字符串,请问cin>>word什么时候被判为是假?
2.书中#include<string>后 即可用string word,来定义一个字符串了,我在vc++6.0上怎么试都报错,为什么?
3.书中头文件一律不加.h,而在vc++6.0中这是通不过的,是编译器的差异造成的吗?
6 回复
#2
aipb20072007-07-23 23:18
1,对流作为条件判断,当输入非法,或者遇到文件结束符,流被设置错误,此时为假。
2,这样没有错,不过string被放在std名字空间中,要不加上一句using namespace std,或者std::string word。
3,新标准与过时标准的区别,.h是c的头文件,在c++里,去掉了.h,在前面加c。同时,把这些头文件定义的东西放在std名字空间。
#3
panxiang882007-07-23 23:30
那么怎样输入是非法?而且我是从终端输入,怎么能输入文件结束符呢?
原程序是这样的
#include <iostream>
#include <string>
int main()
{
string word;
while ( cin >> word )
cout << "word read is: " << word << '\n';
cout << "ok: no more words to read: bye!\n";
return 0;
}
我无论怎么输入,循环判断都不为假~~~~
#4
aipb20072007-07-23 23:36
因为是字符串,输入 文件结束符 就可以。
ctrl+z或者F6均可。
#5
aipb20072007-07-23 23:37

加上using namespace std;

#6
panxiang882007-07-23 23:48
不好意思
输入 文件结束符 就可以,那 文件结束符 怎么输?
#7
使者2007-07-24 13:59
ctrl+z或F6
然后两个回车,不就"ok: no more words to read: bye!\n"了吗?
1