// 66节项目练习一 2020.2.8.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//连续输入多个单词,然后统计这些单词总的长度,以及单词个数
#include
#include
#include
using namespace std;
int main(void) {
string word;//单词
int count=0; //计数
int length=0; //长度
cout << "请连续输入多个单词:" << endl;
while (1) {
if ((cin >> word) == 0) {
break;
}
cin >> word;
count++;
length += word.length();
}
cout << "一共有" << count << "个单词" << endl;
cout << "总长度是:" << length << endl;
system("pause");
return 0;
}
cin是一个流对象并非函数,返回值是对象本身,所以你的((cin>>word)==0)相当于让两个不同类型的东西去比较了,可以换为(!(cin>>word))
cin >> word相当于一个函数调用,效果是从流中取出内容放入内存返回值是cin本身。
cin提供一个向bool类型的类型转换,因此可以放在if判断中。因此,
if (!(cin >> word)) // OK
if (bool(cin >> word) == false) // OK
但如果这样写的话必须cin流错误才可以结束输入,比如输入ctrl + z回车。如果想以换行为结束标志的话可以考虑用cin.peek()函数,
后者作用是检查流下一个字符但不从流中取出。但这样就需要调整一下程序结构。