하나의 템플릿을 사용하여 텍스트 파일을 분리하여 인쇄하기 위해 다양한 유형의 3 가지 배열을 얻으려고합니다.하나의 템플릿을 사용하여 다른 배열 유형을 다른 텍스트 파일로 보냄 C++
여기에 내가 가진 무엇 :
template <class T>
void givetxt(T *a, const int n)
{
ifstream infile("C:\\.txt", ios::in | ios::app);
for (int i = 0; i<n; i++)
{
infile >> a[i];
}
infile.close();
}
template <class T>
void savetxt(const T *a, const int n)
{
ofstream outfile("C:\\.txt", ios::out | ios::app);
for (int i = 0; i<n; i++)
outfile << a[i] << endl;
outfile.close();
}
int main()
{
const int n1 = 5, n2 = 7, n3 = 6;
int a[n1];
float b[n2];
char c[n3];
givetxt(a, n1);
savetxt(a, n1);
givetxt(b, n2);
savetxt(b, n2);
givetxt(c, n3);
savetxt(c, n3);
를 바로 지금이 .txt 인에 배열의 모든 데이터를 전송합니다. 이상적으로는 .inttxt
, .floattxt
및 .chartxt
으로 인쇄 할 수 있습니다. infile/outfile을 조정하여 다른 배열에 대한 별도의 텍스트 파일을 허용하는 방법을 모르겠습니다. 나는 포인터를했지만 템플릿은 내가 main
에있는 변수에 T a*
이나 const int n
을 연관시키는 것을 허용하지 않을 것입니다. 올바른 방향으로 밀어주는 것이 가장 큰 도움이 될 것입니다.
방법에 대한 3 개 과부하 기능'savetxt (INT의 *, int)를','savetxt (플로트 *, int)를'와'savetxt (숯불 *, int)를'작성 및 세 번째 매개 변수로 템플릿 함수를 호출하게하십시오 - 파일 이름'void savetxt (T * a, const int n, const char * sFileName)'? –
도움을 주셔서 감사합니다. 이것이 나를 위해 일한 것입니다. 'void savetxt (T * a, const int n, const char * sFileName) { \t ofstream outfile (sFileName, ios :: out | ios :: app); \t for (int i = 0; i
괜찮아요 잘 코드는 코멘트에서 그렇게 나올 수 없지만 완벽하게 작동합니다. –