Поэтому я написал код, который скопирует файл, открыв файл, который будет скопирован, а затем скопирует с него символ char с помощью get. Код:
int main(int argc, char* argv[]) {
if (argc != 3) {
cout << "ERROR: Invalid number of arguments.\n";
return 1;
}
ifstream inputFile(argv[1]);
ofstream outputFile(argv[2]);
char c;
if (inputFile.is_open() && outputFile.is_open()) {
while (!(inputFile.eof())) {
c = inputFile.get();
outputFile << c;
}
}
else {
cout << "Unable to open file(s).\n";
return 1;
}
inputFile.close();
outputFile.close();
return 0;
}
Он полностью копирует текст, за исключением того, что всегда просматривается нежелательный символ. Почему этот символ нежелательной почты читается и как я могу предотвратить это? (Примечание. Я знаю, что есть лучшие способы скопировать файл, но я должен сделать это, используя get()).
Цикл должен выглядеть следующим образом:
for (int c; (c = inputFile.get()) != EOF; )
{
if (!outputFile.put(c))
{
// fatal: write error, die
}
}
int c
notchar c
илиEOF
не могут быть представимы. Все немного грустно на самом деле; K & R не будет впечатлен.