Я новичок в C ++, и у меня есть вопрос, который выходит за мои пределы.
Я компилирую под GNU GCC.
я использую
#include<stdio.h>
также известен как:
#include<cstdio>
В какой-то момент в моей программе я говорю программе использовать файл de_facut.txt в качестве входного файла:
freopen("de_facut.txt","r",stdin);
Как я могу сказать программе использовать консоль для ввода ввода (по умолчанию) вместо в файл?
Сначала я хочу прочитать из этого файла, но позже в программа, которую я хочу, чтобы пользователь ввел ввод в консоли.
Я надеюсь, что вы поняли мою проблему, я не очень хорош в английском.
Тот же вопрос был задан о стандартный вывод: Как перенаправить вывод обратно на экран после freopen ("out.txt", "", stdout), но ответ одинаков для обоих — нет чистого способа сделать это: http://c-faq.com/stdio/undofreopen.html
Поскольку вам нужно читать с консоли позже в программе, я бы посоветовал вам просто открыть файл как файл. Если причина, которую вы хотели использовать stdin
чтение из файла — это удобство, когда нет необходимости передавать дескриптор файла в такие функции, как fscanf
вместо этого вы можете использовать средства fstream — код может выглядеть точно так же, как при чтении из консоли:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int x;
cin >> x; // reading from console
{
ifstream cin("input.txt");
cin >> x; // reading from file
}
cin >> x; // again from console
return 0;
}
Других решений пока нет …