Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我在使用getline()时遇到问题&引用;没有重载函数的实例与参数列表匹配;及;“数据不明确”;_C++_Cin_Getline_Ambiguous - Fatal编程技术网

C++ 为什么我在使用getline()时遇到问题&引用;没有重载函数的实例与参数列表匹配;及;“数据不明确”;

C++ 为什么我在使用getline()时遇到问题&引用;没有重载函数的实例与参数列表匹配;及;“数据不明确”;,c++,cin,getline,ambiguous,C++,Cin,Getline,Ambiguous,我以前使用过这个函数,但是简单地复制并粘贴到另一个文件会导致它停止工作。唯一的变化是我添加了“使用名称空间std” 在我的“ReadData()”函数中,我在getline(cin,data)上得到一个错误,即重载函数的实例都不匹配参数列表。另外,我在通话中收到一个关于“数据”的错误,说“数据不明确。” 该函数应该从文本文件中读取数据,并将文本行存储在数据中以供进一步处理。这个函数是如何工作的,所以我不确定 #include <iostream> #include "NvraArra

我以前使用过这个函数,但是简单地复制并粘贴到另一个文件会导致它停止工作。唯一的变化是我添加了“使用名称空间std”

在我的“ReadData()”函数中,我在getline(cin,data)上得到一个错误,即重载函数的实例都不匹配参数列表。另外,我在通话中收到一个关于“数据”的错误,说“数据不明确。”

该函数应该从文本文件中读取数据,并将文本行存储在数据中以供进一步处理。这个函数是如何工作的,所以我不确定

#include <iostream>
#include "NvraArray.h"
#include "NvraRecord.h"

#include <vector>
#include <string>
#include <ctime>
using namespace std;

// Globals
string data; // Stores the line that getline is at
vector<string> rows; // Stores the rows of data
vector<int> recordNumbersSeen; // Holds records numbers that have been checked
string strWords[24]; // Holds the individual columns of data for processing
int rowCounter = 0; // Counts the rows of data coming in

// Prototypes
// Reads the data from cin into the "rows" vector
void ReadData();
// Checks the current row against the list of records already seen
bool isDuplicate(int recordID);
// Checks the current row for invalid data
bool isValidData();
// Splits the row into an array to process
void SplitRowIntoArray(std::string row);

int main(){

    // For testing purposes
    srand(time(NULL));

    NvraArray array;
    NvraRecord record;



    system("pause");
    return 0;
}

void ReadData(){
    while(getline(cin,data)){

        // if on the first row, do nothing and skip to the next.
        if(rowCounter != 0){

            rows.push_back(data);
        }else{
            rowCounter++;   
        }
    }
    rowCounter = 0;
}
#包括
#包括“NvraArray.h”
#包括“NvraRecord.h”
#包括
#包括
#包括
使用名称空间std;
//全球的
字符串数据;//存储getline所在的行
向量行;//存储数据行
矢量记录编号见;//保存已检查的记录编号
字符串strWords[24];//保存要处理的单个数据列
int rowCounter=0;//对传入的数据行进行计数
//原型
//将数据从cin读入“行”向量
void ReadData();
//对照已看到的记录列表检查当前行
bool-isDuplicate(int-recordID);
//检查当前行中的无效数据
bool isValidData();
//将行拆分为要处理的数组
void splitrowintary(std::string行);
int main(){
//用于测试目的
srand(时间(空));
nvra阵列;
NvraRecord记录;
系统(“暂停”);
返回0;
}
void ReadData(){
while(getline(cin,data)){
//如果在第一行,什么也不做,跳到下一行。
如果(行计数器!=0){
行。推回(数据);
}否则{
行计数器++;
}
}
行计数器=0;
}

您与C++17引入的函数模板发生冲突。显然,您所包含的一个标准库头将包含到
迭代器中


将全局变量重命名为非
数据
可以解决此问题。

您与C++17引入的函数模板发生冲突。显然,您所包含的一个标准库头将包含到
迭代器中


将全局变量重命名为
数据以外的其他变量可以解决此问题。

这是一个不应该使用
名称空间std。您有名称冲突:
字符串数据
与冲突


如果这还不足以说服您,请查看
std
名称空间中其他一些名称的列表。如果使用
使用名称空间std,如果您碰巧包含正确的标题,这些名称中的任何一个都可能导致冲突。

这是不应该使用命名空间std使用
的主要示例。您有名称冲突:
字符串数据
与冲突


如果这还不足以说服您,请查看
std
名称空间中其他一些名称的列表。如果使用
使用名称空间std,如果您碰巧包含正确的标题,这些名称中的任何一个都可能导致冲突。

完全脱离主题,但看到全局变量以这种方式被滥用,我不寒而栗。请停止。如果您更改标题来描述问题(可能通过引用错误),那么标题将更有用,而不是破坏我的风格,请详细说明,以便我了解这是一个错误的原因?请发布一个。没有人知道什么是NvraRecord或NvraArray。还可以逐字复制和粘贴整个错误消息,而不是提供执行摘要。为什么对
字符串使用数组,而对整数使用
向量?您也可以对字符串使用
向量
。完全脱离主题,但看到全局变量以这种方式被滥用,我不寒而栗。请停止。如果您更改标题来描述问题(可能通过引用错误),那么标题将更有用,而不是破坏我的风格,请详细说明,以便我了解这是一个错误的原因?请发布一个。没有人知道什么是NvraRecord或NvraArray。还可以逐字复制和粘贴整个错误消息,而不是提供执行摘要。为什么对
字符串使用数组,而对整数使用
向量?您也可以对字符串使用
向量
。@LightnessRacesinOrbit作为非成员
开始
/
结束
函数的同级函数,它实际上是唯一有意义的名称。我同意由此产生的错误是令人讨厌的,但我怀疑在实践中给它起一个不同的名字会是一个更大的麻烦。@ComicSanss也许。我的意思是我能看到它从哪里来但是ugh@Fureeish实际上,它来自
,但是,与往常一样,您的特定stdlib实现可能会通过其他头包含它。结果会因平台而异。我的意思是,通过包含
,可以保证也包含
。我把我的第一句话写得很漂亮poorly@LightnessRacesinOrbit作为非成员的
开始
/
结束
函数的兄弟,它实际上是唯一有意义的名称。我同意由此产生的错误是令人讨厌的,但我怀疑在实践中给它起一个不同的名字会是一个更大的麻烦。@ComicSanss也许。我的意思是我能看到它从哪里来但是ugh@Fureeish实际上,它来自
,但是,与往常一样,您的特定stdlib实现可能会通过其他头包含它。结果会因平台而异。我的意思是,通过包含
,可以保证也包含
。我第一次评论的措辞非常糟糕