Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Модератор: Модераторы разделов

Mansai
Сообщения: 19
ОС: OpenSuSe 10.3

Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Mansai »

#include <strstream> // или <iostream> .выдаёт разные ошибки
using namespace std;
int main()
{
cout << "Что нибудь";
return 0;
}

объяснитье пожалуйста, почему не работает?
Ты думаешь, что движешь, а ты движим
Спасибо сказали:
Аватара пользователя
grouzen
Сообщения: 120
ОС: LFS, slackware

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение grouzen »

Mansai писал(а):
08.10.2008 18:04
#include <strstream> // или <iostream> .выдаёт разные ошибки
using namespace std;
int main()
{
cout << "Что нибудь";
return 0;
}

объяснитье пожалуйста, почему не работает?

Так вы бы ошибки для начала эти самые и показали бы :happy:
Спасибо сказали:
Mansai
Сообщения: 19
ОС: OpenSuSe 10.3

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Mansai »

имя компилируемого файла 1234.cpp

/tmp/ccIZdnVC.o: in Function 'std:__verufy_grouping(char const*, unsigned int, std::char_traits<char>, std::allocator<char> > const&)':
1234.cpp: (.text+0xe): undefined reference to 'std::basic_string<char,std:char_traits<char>,std:allocator<char> > const&)
... тут примерное подобное
/tmp/ccIZdnVC.o: in function 'main':
1234.cpp : (.text + )x128): undefined reference to 'std::cout'
... тут примерно подобное
collect2: ld returned 1 exit status
Ты думаешь, что движешь, а ты движим
Спасибо сказали:
warp
Сообщения: 135

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение warp »

такой отвал происходит когда линковщик не находит нужную функцию. те в приведённом заглавочном файле она не определена или определена не корректно, или ей сообщаются не корректные инициализирующие значения. если не следовать стандарту то можно использовать вот это:

Код: Выделить всё

#include <iostream.h>

using namespace std;
int main()
{
cout << "Что нибудь";
return 0;
}



да кстати, если под gcc-g++ компилити то не надо таскать за собой using std - оно по умолчанию используется.
за мировое господство! банзай, товарищи!
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение /dev/random »

Компилируется командой gcc или g++ ?
Спасибо сказали:
Аватара пользователя
destr
Сообщения: 128
ОС: Debian

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение destr »

ага, и используйте <iostream> вместо <iostream.h>
Спасибо сказали:
warp
Сообщения: 135

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение warp »

/dev/random, g++ так как с++
но можно и gcc'шкой с соответвующей опцией ))
за мировое господство! банзай, товарищи!
Спасибо сказали:
Mansai
Сообщения: 19
ОС: OpenSuSe 10.3

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Mansai »

Ну так как мне решите эту проблему (не важно какой именно командой я компилю, всё равно вылезает ошибка). А при описани <iostream.h> он мне ещё выдаёт предупреждение.
Ты думаешь, что движешь, а ты движим
Спасибо сказали:
Аватара пользователя
drag0n
Сообщения: 156
Статус: Дракон-линуксоид
ОС: Slackware Linux

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение drag0n »

Код: Выделить всё

1234.cpp : (.text + )x128): undefined reference to 'std::cout'

А у вас библиотека libstdc++ установлена??
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Спасибо сказали:
warp
Сообщения: 135

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение warp »

предупреждение при <iostream.h> вылазит по тому что это уже лет как 10 устаревший способ инклуда, хотя и до сих пор рабочий. а вот наличие ошибки по меньшей мере странно и вот по чему - заглавочный файл есть, но линковка с динамической библиотекой не происходит... вроде бы нужно искать ошибку в коде но у меня пример прекрасно работает. какой вы именно командой компилити? g++ 1234.cpp? или чем то отличным? как выглядит полная командная строка?
за мировое господство! банзай, товарищи!
Спасибо сказали:
Mansai
Сообщения: 19
ОС: OpenSuSe 10.3

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Mansai »

drag0n писал(а):
09.10.2008 08:13

Код: Выделить всё

1234.cpp : (.text + )x128): undefined reference to 'std::cout'

А у вас библиотека libstdc++ установлена??

Как это проверить?

Код: Выделить всё

предупреждение при <iostream.h> вылазит по тому что это уже лет как 10 устаревший способ инклуда, хотя и до сих пор рабочий. а вот наличие ошибки по меньшей мере странно и вот по чему - заглавочный файл есть, но линковка с динамической библиотекой не происходит... вроде бы нужно искать ошибку в коде но у меня пример прекрасно работает. какой вы именно командой компилити? g++ 1234.cpp? или чем то отличным? как выглядит полная командная строка?


daniil@linux-v1nr:~> gcc 1234.cpp
/tmp/ccij2jyH.o: In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
1234.cpp:(.text+0xe): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
1234.cpp:(.text+0x59): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
1234.cpp:(.text+0x97): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
1234.cpp:(.text+0xdf): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
/tmp/ccij2jyH.o: In function `main':
1234.cpp:(.text+0x128): undefined reference to `std::cout'
1234.cpp:(.text+0x12d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccij2jyH.o: In function `__static_initialization_and_destruction_0(int, int)':
1234.cpp:(.text+0x15d): undefined reference to `std::ios_base::Init::Init()'
/tmp/ccij2jyH.o: In function `__tcf_0':
1234.cpp:(.text+0x1aa): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccij2jyH.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
daniil@linux-v1nr:~>

При вводе команды cpp 1234.cpp выдаёт вроде бы содержание хэдера iostream а за ним следует текст программы(самма программа не выполняется)
При команде cc 1234.cpp выдаёт тоже что и при gcc 1234.cpp
А при командах c++ 1234.cpp и g++ 1234.cpp не выдаёт ничего.
А эта проблема приследует меня не только на моём OSS 10.3 Такая же проблема у меня и при компиляции в школе на ALTLinux(версию точно не помню)
Ты думаешь, что движешь, а ты движим
Спасибо сказали:
warp
Сообщения: 135

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение warp »

daniil@linux-v1nr:~> gcc 1234.cpp

так ведь си ничего не знает о потоках, ios'ах и прочей с++'ой колбасе, отсюда и ругань в консоли на неизвестные функции.

давайте уточним установлен ли у вас g++ и какая у него версия:
g++ --version
если у вас его нет то придётся его поднять. если же есть, но не заработает после команды g++1234.cpp то вывод консоли уже для этого случая.

1234.cpp не выдаёт ничего.

если компиляция завершена успешно то ничего и не должно выдаваться.
за мировое господство! банзай, товарищи!
Спасибо сказали:
Mansai
Сообщения: 19
ОС: OpenSuSe 10.3

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Mansai »

Код: Выделить всё

 если компиляция завершена успешно то ничего и не должно выдаваться.

А как тогда запустить программу на выполнение?
Ты думаешь, что движешь, а ты движим
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Portnov »

./a.out

где a.out - имя появившегося бинарника.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
warp
Сообщения: 135

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение warp »

добавлю к словам Portnov'a что лежать она будет там же где и исходник.
за мировое господство! банзай, товарищи!
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5456
ОС: Gentoo

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение /dev/random »

warp писал(а):
09.10.2008 04:31
/dev/random, g++ так как с++
но можно и gcc'шкой с соответвующей опцией ))

Я имел в виду, чем _топикстартер_ пытается откомпилировать, а не чем следует компилировать. Поскольку, судя по ошибке, вероятнее всего, он пытался компилировать командой gcc.

И я оказался прав:
Mansai писал(а):
09.10.2008 13:25
daniil@linux-v1nr:~> gcc 1234.cpp
Спасибо сказали:
warp
Сообщения: 135

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение warp »

с утра моё эго проснулось раньше чем я сам, вот меня и глюкнуло что это мне ;]
за мировое господство! банзай, товарищи!
Спасибо сказали:
Mansai
Сообщения: 19
ОС: OpenSuSe 10.3

Re: Решено: С++. Не знаю как использовать потоки ввода ввыода на консоль

Сообщение Mansai »

Да!!! При команде c++ 1234.cpp всё нормально компилируется!!! Он мне выдал фаил a.out а я в упор смотрел и не понимал что это такое!!! Всем большое спасибо, что помогли мне разобраться!!!
Ты думаешь, что движешь, а ты движим
Спасибо сказали: