在你点进这个博客的时候一定被c++中的cout所困扰过,相信这将给你一些答案
例如这个代码
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char str[] = { "Please enter the verification code." };
int length = strlen(str);
cout << length;
int cout = 0, max = 0, start = 0;
for (int i = 0; i < length; ++i)
{
if (max < cout)
{
max = cout; start = i;//staart先把最长单词遍历完
}
if (str[i] != ' ')//不断遍历每个单词
{
cout++;
}
else { cout = 0; }
}
cout << max;
start = start - max;//减去最长单词就可以得到所需
printf("\n");
printf("%d %d", start, max);
cout << max << endl;
return 0;
}
这里如果还用cout<<max;将会出现错误
错误的原因:1.C2568 “<<”: 无法解析函数重载
2. C2563 在形参表中不匹配
3. 无法确定需要哪个 函数模板 "std::endl" 实例
对于这个原因想要完全了解必须知道:
"cout":在c++被称为输出流对象 ,"<<"者被称为插入运算符
在用cout输出时,用户不必通知计算机按何种类型输出,系统会自动判别输出数据的类型,使输出的数据按相应的类型输出。
printf则被称为格式化输出,而printf则必须手动判别数据类型
重点:正是因为cout会自动判别才导致有些情况下会导致无法正常输出