错误:从'void'转换为非标量类型'std :: vector

时间:2012-11-15 05:46:22

标签: c++

完整的错误消息:

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,我尝试的无效:voidintdoublestring等等;

有关如何声明parseLine以使其符合我的要求的任何指示?

1 个答案:

答案 0 :(得分:1)

parseLine()必须返回vector<string>

vector<string> parseLine(string s, char i);

如果它适合第61行。但是因为你返回token,它也可能是

vector<token> parseLine(string s, char i);

你的意图。