完整的错误消息:
error: conversion from 'void' to non-scalar type 'std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >' requested
1 #include <iostream>
2 #include <iomanip>
3 #include <fstream>
4 #include <vector>
5 using namespace std;
6
7 token parseLine(string s, char i);
53 int main()
54 {
55 string line;
56 char delim = '|';
57 ifstream inputStream("test.txt");
58
59 while( getline(inputStream, line) )
60 {
61 vector<string> tokens = parseLine( line, delim);
62 if(tokens[0][0] != '#')
63 {
64 cout << tokens[0];
65 cout << tokens[1];
66 cout << tokens[2];
67 }
68 }
69 }
请原谅8-52行跳过,注释掉了“不起作用的东西”。
我不确定如何声明parseLine
,我尝试的无效:void
,int
,double
,string
等等;
有关如何声明parseLine
以使其符合我的要求的任何指示?
答案 0 :(得分:1)
parseLine()
必须返回vector<string>
:
vector<string> parseLine(string s, char i);
如果它适合第61行。但是因为你返回token
,它也可能是
vector<token> parseLine(string s, char i);
你的意图。