【发布时间】:2020-09-13 04:37:27
【问题描述】:
以下类将string 行作为用户的输入。我的目标是将其存储在istringstream iss 中,然后将istringstream iss 中的各种数据提取到各种变量中。但是,当我尝试用string user_input 初始化iss 时,我在编译文件时收到此错误:
错误 C2064:术语不计算为采用 1 个参数的函数
我认为问题出在iss{user_input}; 行,请解释我收到此错误的原因。
_input.h头文件
#pragma once
#include <string>
#include<sstream>
#include "_date.h"
#include "_time.h"
using namespace std;
//definition of class input
class _input
{
string user_input;
istringstream iss;
//datamembers to be sent
int esno,eday, emonth, eihours, eimins, eohours, eomins, emo;
char eiap, eoap;
string enotes;
public:
_input();
void get_input();
void process_data();
};
_input.cpp文件
#include "_input.h"
_input::_input() : user_input { "Nothing Entered" }, iss{ "" }, esno{ 0 }, eday{ 0 }, emonth{ 0 },
eihours{ 0 }, eimins{ 0 }, eohours{ 0 }, eomins{ 0 }, emo{ 0 }, eiap{ 'n' }, eoap{ 'n' }, enotes{ "" }
{
}
void _input::get_input() // to store in iss
{
cout << "Enter the entry : Format (Date - In Time - Out Time - Money Owed - Notes)" << endl;
getline(cin, user_input);
iss{user_input}; //THIS IS WHERE I GET THE ERROR
}
void _input::process_data()
{
iss >> eday >> emonth >> eihours >> eimins >> eiap >> eohours >> eomins >> eoap >> emo >> enotes;
++esno;
}
【问题讨论】:
-
x{y}不是 C++ 语法中的有效表达式
标签: c++ istringstream