我不明白为什么它报告这个错误。
错误是ISO C++ forbids comparison between pointer and integer (f-permissive)
。
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cctype>
using namespace std;
int main()
{
int letters; //Total number of letters
int digits; //Total number of digits
int sentencecount; //Number of sentences
float averageletters; //Average number of letters per sentence
int linecount=0; //Count of lines
char current; //Current character
sentencecount = letters/linecount;
cin.get(current);
while (cin) //while receiving input
{
digits = 0;
letters = 0;
linecount++;
if (current == "." || current == "!" || current == "?") //checks each line
{
if (isalpha(current))//counts alphabet characters
letters++;
if (isdigit(current))//counts digits
digits++;
cin.get (current);
}
sentencecount = letters/linecount;
cout << "avg number of letters" << sentencecount << "digits" << digits << endl;
cin.get (current);
}
return 0;
}
在这一行:
if (current == "." || current == "!" || current == "?")
您正在使用string literals
或者正确地说出character arrays
。这转换为指向该数组的指针。我认为你打算使用单引号将它标记为'
的单个字符。这样你比较它是有价值的。