URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8576
[ Назад ]

Исходное сообщение
"проблемы stdin под gcc"

Отправлено Nemozar , 30-Дек-09 17:54 
Здравствуйте. Писал под виндой, перешел на линукс и как я понял тут встроеный с++ компилятор.

Переношу прогармму из под винды

#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

Подскажите пожалуйста как правильно описать, что бы заработало


Содержание

Сообщения в этом обсуждении
"проблемы stdin под gcc"
Отправлено Nemozar , 30-Дек-09 18:12 
#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?


"проблемы stdin под gcc"
Отправлено Slavaz , 30-Дек-09 18:15 
>Разобрался, теперь другой вопрос, почему
>#include <iostream>
>#include <stdio.h>
>с разными расширениями? из за версии gcc?

Это стандарты C и C++


"проблемы stdin под gcc"
Отправлено Nemozar , 30-Дек-09 18:23 
>>Разобрался, теперь другой вопрос, почему
>>#include <iostream>
>>#include <stdio.h>
>>с разными расширениями? из за версии gcc?
>
>Это стандарты C и C++

а почему тогда они в одной программе работают (притом только так. т.е. iostream.h выдал ошибку и stdio(без .h) тоже ошибку выдавал)


"проблемы stdin под gcc"
Отправлено Slavaz , 30-Дек-09 18:36 
>а почему тогда они в одной программе работают (притом только так. т.е.
>iostream.h выдал ошибку и stdio(без .h) тоже ошибку выдавал)

Потому что одни реализации компиляторов строго и аскетично соблюдают стандарты (меньше "простора для манёвра"), а другие довольно фривольно оперируют интерпретацией стандартов ("больше шанс совершить ошибку"). Третьи иногда вообще кладут на стандарты и пытаются изобрести свои, положив болт на совместимость.


"проблемы stdin под gcc"
Отправлено phpcoder , 02-Янв-10 15:57 
>>а почему тогда они в одной программе работают (притом только так. т.е.
>>iostream.h выдал ошибку и stdio(без .h) тоже ошибку выдавал)

Надо писать либо stdio.h (старый, Сишный стиль) либо cstdio (С++ стиль).