2012-11-15 2 views
-1

전체 오류 메시지 요청 :오류 '가 아닌 스칼라 유형'무효 '표준 : : 벡터의 변환 <표준 : : basic_string <문자, 표준 : : char_traits는

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을 선언하는 방법에 대한 지침이 있으십니까? 이 라인 (61)에 적합하지만 이후 token을 반환해야하는 경우

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

그것은 또한 당신이 의도

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

수 있습니다 :

+5

결과를 할당 할 것이므로'std :: vector parseLine (string s, char i);'를 원할 것입니다. – chris

+0

'parseLine'은 무엇을 반환합니까? 그리고 함수가 반환하는 객체는 함수 내에서 어떻게 선언됩니까? – jogojapan

+0

라인 61은 많은 정보를 제공합니다 ... – billz

답변

1

parseLine()vector<string> 반환해야합니다.

+0

내가하려고하는 것은 C1 | c3 | c4의 형태로 입력을 읽은 다음 |를 기준으로 분리하는 것입니다. 그래서, 나는 코드가하는 일이 무엇인지 전혀 알지 못한다. 나는 그것이 내가 제시 한 문제를 해결하기위한 의도로 게시되었음을 알고 있습니다. 코드 오류를 통해 정렬 한 후에는 아무 것도 입력하지 않으면 parseLine이 선언되지 않습니다. –

+0

그러면 코드를 게시 한 사람에게 물어보십시오. 우리는 이름에 따라 무엇을해야 하는지를 짐작할 수 있습니다. 'parseLine()'선언을 제거하면, 컴파일러는 컴파일을 제대로 알기 위해 선언을 알아야하기 때문에 물론 그것에 대해 불평합니다. 위의 주석에서'parseLine()'함수도 구현해야합니다. 즉, "|"에서 줄을 분리하기 위해 함수가 수행해야하는 작업을 정의해야합니다. –