Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос о переносимости одного куска кода, И не только 
:(
    Опции темы
Chaos A.D.
Дата 17.2.2005, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 16.1.2005
Где: 09 RUS

Репутация: 6
Всего: 7



Подскажите, является ли переносимым вот такой вот простой код :

Код

 ifstream in("/path/to/my/file");
 string buf;
 while ( !in.eof() )
 {
   in >> buf;
   cout << buf << ' ';
 }



Че-то на отрез отказывается компилиться в линуксе (gcc), а вот в винде (BCB6) с пол пинка. Вроде очевидно, что в STL у ifstream перегружен >> для аргумента string, но ругается именно на него. Что-же получается, STL STL-у рознь чтоли? И еще вопрос. У меня еще свежи воспоминания о том, как я юзал getline, с аргументами ifstream& и string. Смотрю своими глазами на свой же код, написаный ранее - все работает. Сегодня пишу такое-же (компилятор не менял, инклюды не забывал) - матерится на то, что сигнатура этой функции осталась в наследство еще от C, и требует трех параметров - char**, size_t и FILE*. Вот такие чудеса. В чем дела?
--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest
PM MAIL   Вверх
maxim1000
Дата 17.2.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата
Че-то на отрез отказывается компилиться в линуксе (gcc),

мои скромные познания в Linux'е говорят о том, что для компиляции C++ используется g++, а не gcc...


--------------------
qqq
PM WWW   Вверх
Doc_d0s
Дата 17.2.2005, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: 2
Всего: 3



Цитата
мои скромные познания в Linux'е говорят о том, что для компиляции C++ используется g++, а не gcc...

Не знаю, что ты курил?
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
Chaos A.D.
Дата 17.2.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 16.1.2005
Где: 09 RUS

Репутация: 6
Всего: 7



Да не курил я, просто опечатался. За инет плачу, как все чесные граждане smile, поэтому торопился. А так, конечно его и юзал. Пардон за опечатку.
--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest
PM MAIL   Вверх
Fixin
Дата 17.2.2005, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 2
Всего: 18



пробуй стринг на чар массив менять.
PM MAIL ICQ   Вверх
Hroft
Дата 21.2.2005, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Ну вообще-то
Код
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
       fstream in("/home/lalala");
       string buf;
       while ( !in.eof() ) {
               in >> buf;
               cout << buf << ' ';
       }
       return 0;
}

прекрасно работает...
ALT какой-то, g++ 3.3.3.
PM MAIL ICQ   Вверх
pablo
Дата 21.2.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Цитата
Код

  fstream in("/home/lalala");
А лала, ето файл или директория ?


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Hroft
Дата 21.2.2005, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



smile
Удивительно...
Тебе так хочется узнать мой логин и структуру каталогов в $HOME?
Я запускал с указанным исходником в качестве строчки, для проверки, а потом заменил, не думал, что могут возникнуть вопросы...
PM MAIL ICQ   Вверх
pablo
Дата 21.2.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

Репутация: 4
Всего: 6



Ну тогда это меняет ход дела.


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
chaos
Дата 21.2.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



а может такое решение подойдет:
Код

#include <fstream>
#include <algorithm>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
fstream in(argv[1]);
istream_iterator<char> iin(in);
copy(iin, istream_iterator<char>( ), ostream_iterator<char>(cout, ""));
return 0;
}


Это сообщение отредактировал(а) chaos - 21.2.2005, 12:13
PM WWW   Вверх
Ni@m
Дата 25.2.2005, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

Репутация: 0
Всего: 6



попробуй с fopen открівать файл и работать с fread, fwrite. И поточнее можно описать ошибку, тоесть что відает компилятор.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
Chaos A.D.
Дата 25.2.2005, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 16.1.2005
Где: 09 RUS

Репутация: 6
Всего: 7



Спасибо за помошь, компилятор похоже отпустило.
--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.