Здравствуйте. Писал под виндой, перешел на линукс и как я понял тут встроеный с++ компилятор.Переношу прогармму из под винды
#include <iostream>
using namespace std;
int main()
{
freopen("input.txt", "rt", stdin);
freopen("output.txt", "w", stdout);int a, b;
cin >> a >> b;
cout << a + b;
char wait;
cin >> wait;
return 0;}
компилирую c++ test.c -o testи выскакивает ошибка
test.c: In function ‘int main()’:
test.c:7: error: ‘stdin’ was not declared in this scope
test.c:7: error: ‘freopen’ was not declared in this scope
test.c:8: error: ‘stdout’ was not declared in this scopeПодскажите пожалуйста как правильно описать, что бы заработало
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
freopen("input.txt", "rt", stdin);
freopen("output.txt", "w", stdout);
...
}Разобрался, теперь другой вопрос, почему
#include <iostream>
#include <stdio.h>
с разными расширениями? из за версии gcc?
>Разобрался, теперь другой вопрос, почему
>#include <iostream>
>#include <stdio.h>
>с разными расширениями? из за версии gcc?Это стандарты C и C++
>>Разобрался, теперь другой вопрос, почему
>>#include <iostream>
>>#include <stdio.h>
>>с разными расширениями? из за версии gcc?
>
>Это стандарты C и C++а почему тогда они в одной программе работают (притом только так. т.е. iostream.h выдал ошибку и stdio(без .h) тоже ошибку выдавал)
>а почему тогда они в одной программе работают (притом только так. т.е.
>iostream.h выдал ошибку и stdio(без .h) тоже ошибку выдавал)Потому что одни реализации компиляторов строго и аскетично соблюдают стандарты (меньше "простора для манёвра"), а другие довольно фривольно оперируют интерпретацией стандартов ("больше шанс совершить ошибку"). Третьи иногда вообще кладут на стандарты и пытаются изобрести свои, положив болт на совместимость.
>>а почему тогда они в одной программе работают (притом только так. т.е.
>>iostream.h выдал ошибку и stdio(без .h) тоже ошибку выдавал)Надо писать либо stdio.h (старый, Сишный стиль) либо cstdio (С++ стиль).