另一个函数的输出
问题描述:
在我的C++项目中,我有3个文件,它们是main.cpp,functions.cpp和functions.h。另一个函数的输出
functions.cpp:
#include <functions.h>
using namespace std;
int ascii(string text)
{
vector<int> tab;
for(int i=0; i<text.length(); i++)
{
char x = text.at(i);
tab.push_back(x);
}
for(int k=0; k<tab.size(); k++)
{
cout << tab[k] << endl;
}
}
functions.h:
#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
#include <iostream>
#include <string>
#include <vector>
int ascii(std::string text);
#endif // FUNCTIONS_H_INCLUDED
main.cpp中:
#include <functions.h>
using namespace std;
int main()
{
string plaintext;
cout << "Enter text : ";
ws(cin);
getline(cin, plaintext);
ascii(plaintext);
return 0;
}
正如你可以看到,该值被存储在一个阵列中functions.cpp文件。
如何将函数从functions.cpp“移动”到main.cpp中,以便我可以处理这些数据?
答
一种方法是做到以下
functions.cpp
using namespace std;
vector<int> ascii(string text) // original: int ascii(string text)
{
vector<int> tab;
for(int i=0; i<text.length(); i++)
{
char x = text.at(i);
tab.push_back(x);
}
for(int k=0; k<tab.size(); k++)
{
cout << tab[k] << endl;
}
return tab; // original: no return
}
functions.h
#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
#include <iostream>
#include <string>
#include <vector>
std::vector<int> ascii(std::string text); // original int ascii(std::string text)
#endif // FUNCTIONS_H_INCLUDED
的main.cpp
#include <functions.h>
using namespace std;
int main()
{
string plaintext;
cout << "Enter text : ";
ws(cin);
getline(cin, plaintext);
vector<int> returning = ascii(plaintext); // original: ascii(plaintext)
return 0;
}
我试图做这样的,但问题是这样的: ' main.cpp:12:44:错误:从'int'转换为非标量类型'std :: vector'请求 ' –
Lulzsec
而不是'int ascii(字符串文本)'你必须把'vector ascii(字符串文本)'我刚刚尝试过,它工作。 –
2015-10-17 02:40:19
同样的错误:'main.cpp:在函数'int main()'中: main.cpp:12:44:错误:从'int'转换为非标量类型'std :: vector'请求 ' –
Lulzsec