Расширенные операции с файлами ввода / вывода, с функциями

пожалуйста извините мой формат новичка. Я пытаюсь получить проход по функции ref для чтения из существующего файла с первой позиции до последней позиции. Я пытался заставить его читать и отображать содержимое файлов, сначала используя seekg, чтобы прочитать количество символов или байтов в файле. Я использовал кусочки из примеров своих преподавателей и учебника. У меня такое чувство, что это скорее проблема с моей функцией, чем с организацией. Он компилируется и, кажется, считает правильно, но не отображает содержимое файла arrays.txt. Любая помощь будет оценена как всегда.

//  Using Bloodshed...

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
#include <iomanip>

using namespace std;

char x;
void calcFunc(fstream&, char&, long&, long&);
int main()
{

fstream file;
char ch, choice;
long offset, last, first;

file.open("arrays.txt");
if (file.fail())
{
cout << " file name cannot be found \n";
system("pause");
exit(1);
}

cout << "Hello You!  Please choose Option A,B,C, or D:   " << endl << endl;;

cout << "A.  READ THE FILE FROM FIRST POSITION TO LAST. " << endl;
cout << "B.  READ THE FILE FROM THE LAST TO THE FIRST IN REVERSE." << endl;
cout << "C.  READ THE FILE FROM FIRST POSITION TO  ANY PLACE." << endl;
cout << "D.  READ FILE FROM ANY PLACE TO ANY PLACE. " << endl << endl;
cout << "A, B, C, OR D,: ";
cin >> choice;

cout << endl << endl;

switch (choice)
{

case 'A':
file.seekg(0L, ios::end);
last = file.tellg();
cout << last;
system("pause");
calcFunc(file, ch, offset, last);
cout << offset << "  " << last << "  " << x << "  " << ch;
system("pause");

break;

default:
cout << "please enter appropriate value";
}return (0);
}

void calcFunc(fstream& file, char& x, long& offset, long& last)
{
for (offset = last; offset > 0; offset--)
{
x = file.get();
cout << x;
return x;
}
}

0

Решение

Единственная проблема, которую я вижу (пока), это использование return x, Это не нужно, если calcFunc возвращается char а также x выполняет некоторое условие, и вы хотите остановить цикл и вернуться из-за него. Я просто вынул бы это.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector