Мне нужно записать длинное число из input.txt в output.txt а в консоли отладки пишет "Неверный дескриптор."
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
FILE* stream;
void il(int* a) {
char s[100];
cin >> s;
a[0] = strlen(s);
for (int i = a[0]; i > 0; i--) {
a[i] = s[i - 1] - '0';
}
}
int main() {
freopen_s(&stream, "input.txt", "r", stdin);
freopen_s(&stream, "output.txt", "w", stdout);
int a[101];
il(a);
for (int i = a[0]; i > 0; i--) {
printf("%i", a[i]);
}
fclose(stdin);
fclose(stdout);
system("pause");
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Просто уберите это system("pause") - какой в нем смысл, тем более после ваших freopen_s. Вы закрыли стандартный ввод и вывод - вот он и не понимает, с чем имеет дело.
Можно, конечно, поменять местами строки
system("pause");
fclose(stdin);
fclose(stdout);
только в output.txt будет записан вывод "pause" - ну, это
Для продолжения нажмите любую клавишу . . .
Вы точно этого хотите? :)