没有运算符"<<"匹配这些操作数
no operators "<<" match these operands
我收到错误: 没有运算符">>"与这些操作数匹配。 和 字符串不是 std 的成员。
#include "iostream"
#include "string.h"
#include "stdafx.h"
int main()
{
std::string forName;
std::cout << "Write your name below please:/n";
std::cin >> forName;
std::cout << forName;
}
除非您尝试包含自己的头文件,否则 C++ 中的include
语句应使用尖括号:
#include <iostream>
#include <string.h>
#include <stdafx.h>
另外,如果你正在写C++:我建议你使用<string>
而不是<string.h>
,因为后者是 C 标头(不是 C++(,并且在 C++ 中已弃用。如果不是,则忽略此位:)
上面包含的所有内容#include "stdafx.h"
都被Visual Studio忽略。有关为什么会这样的更多信息,可以在这里找到:Visual Studio 中"stdafx.h"有什么用?
所以
#include "iostream"
#include "string.h"
#include "stdafx.h"
必须是
#include "stdafx.h"
#include "iostream"
#include "string.h"
之后,您可以通过用适当的<>
或""
包围标题来优化对包含文件的搜索。此处介绍了选择要使用的方法:#include<文件名>和 #include"文件名"有什么区别?文件名>
此外,string.h 是 C 字符串实用程序的 C 标头。它不包括类string
。为此,您需要
#include <string>
如果您确实需要 C 字符串实用程序,建议您使用 C++ 版本
#include <cstring>
您需要将引号更改为尖括号。
#include <iostream>
#include <string>
#include <stdafx.h>
有关两者之间区别的更多信息,请参阅此问题:尖括号<>和双引号" "之间的区别,同时在C++中包含头文件?
如果你有自己的头文件,那么像这样包含:
#include "yourheader.h"
但是如果你使用的是标准的头文件,那么你必须像这样包含:
#include <iostream>
必须将#include "filename"
替换为#include <filename>
对于#include "filename"
预处理器在包含指令的文件所在的目录中搜索。此方法通常用于包含程序员定义的头文件。
对于#include <filename>
预处理器以依赖于实现的方式进行搜索,通常在编译器/IDE 预先指定的搜索目录中。此方法通常用于包含标准库头文件。
string.h 库实际上在 C++ 中被弃用。 尝试改用字符串,或者如果您需要来自string.h(strcpy,strlen(的功能,请尝试使用cstring。
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 控制允许动态运行c++的并发操作数
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- <<操作员在下面的行中工作
- 错误 C2679:二进制"<<":未找到采用类型 'std::string_view' 的右侧操作数的运算符(或者没有可接受的转换)
- C++ 带有向量的 IF 计算操作数
- 是否所有C++运算符都接受操作数?
- 一元*运算符的操作数是否期望一个 prvalue
- 与'operator='不匹配(操作数类型'String'且"void")
- 不正确的操作数类型 MSVC
- C2678 二进制 '==':未找到采用 'Card' 类型左操作数的运算符(或者没有可接受的转换)
- 错误:类型"double()"和"double()"的操作数无效到二进制&quo
- 我的运算符重载是否有效<<(流插入)左操作数不是 ostream
- 没有运算符"="与这些操作数匹配,JUCE 窗口演示应用程序
- 如果我在指针中使用 ++ 操作数,我的值就会出错
- 二进制表达式的操作数无效 - 使用 for 和迭代器
- C2679 二进制"<<":未找到采用右操作数类型的运算符
- CPP 运算符重载操作数位置 [] 与 ==