현재 프로그램에서 .txt 파일의 데이터 열 다섯 개를 읽는 별도의 .h 파일에 템플릿 함수가 포함되어 있습니다. 데이터는 주 프로그램으로 전달되며,이 예에서는 배열 제목 "MISC_DATA"만 신경 씁니다. 나는 배열 "MISC_DATA"에서 가장 큰 값을 결정하려고하며이를 결정하기 위해 데이터가 전달되어야하는 또 다른 함수를 작성했습니다. 그러나 컴파일러에서 함수 호출 "Maximum_Value"인식하지 못한다고 알려줍니다. 나는 루틴 호출에 포함 된 변수 MISC_DATA에 문제가 있으며 함수 자체에는 문제가 없다고 확신한다. MISC_DATA를 배열로 인식하지 못하거나 구문이 잘못되었습니다. 나는 그것을 더 쉽게 읽을 수 있도록 중요한 코드 스 니펫 (snippet)을 포함시키고있다. Read_Five_Columns 함수는 정상적으로 작동합니다. 포인터 배열 MISC_DATA가 주 프로그램에 작성된 방식 때문에 컴파일러에서 인식하지 못하는 "Maximum_Value"함수입니다. 설명을 위해 함수 호출의 변수 MISC_DATA는 배열을 포함하는 float이고 변수 "size_Mis"는 배열 크기를 포함하는 정수입니다. 어떤 생각이라도 감사 할 것입니다.포인터 배열을 함수에 전달하는 데 문제가 있습니다.
int main(int argc, const char * argv[]) {
#include "Use_RNG.h"
#include "Read_Columnar_File.h"
#include <fstream>
#include <iostream>
std::vector<std::string> str3;
std::vector<int> str4;
std::vector<char> str5;
std::vector<int> str6;
unsigned long size_Mis;
std::vector<float> MISC_DATA; // Reads in Misc. spending data
char File1[8];
strcpy(File1, "Misc.txt");
Read_Five_Columns(File1,MISC_DATA,str3,str4,str5,str6);
str3.clear(); str4.clear(); str5.clear(); str6.clear();
size_Mis = MISC_DATA.size();
float value;
value = Maximum_Value(MISC_DATA,size_Mis);
end_time = clock();
std::cout << std::endl << "Total Time: " << (end_time-start_time)/CLOCKS_PER_SEC << std::endl;
return 0;
}
int Maximum_Value(float *array,int array_size)
{
float max = 0;
for(int i =10; i < array_size-1; i++)
{
if(array[i] > max) max = array[i];
}
return max;
}
왜'Maxmimum_Value' 리턴'int' 대신'float'는 무엇입니까? – cdhowie
'MISC_DATA'는'std :: vector'이고 배열이나 포인터는 아닙니다. –
그리고 함수 안에 헤더 파일을 포함시키지 않습니다. –