Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 18:30   #1
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию как быть в таких случаях?

Привет всем

написал тут вот такой скриптик

Код:
#include <fstream>
#include <vector>
using namespace std;

int main() {

// wrire content first.ini from vector
   fstream file1("first.ini");
   string line;
   vector<string> lines;
   while (getline(file1, line))
      lines.push_back(line);
   file1.close();
   
// write date in first.ini from second.txt 
// and delete last two raws
   file1.open("first.ini", ios::out | ios::trunc);
   for (size_t i = 0; i < lines.size() - 2; ++i)
      file1 << lines[i] << endl;
   ifstream file2("second.txt");
   while (getline(file2, line))
      file1 << line << endl;
      
  // clean file second.txt
    ofstream rewrite("second.txt");
    rewrite.write("", 0);
    rewrite.close(); 
}
в Ubuntu Linux работает превосходно а вот в виндовсе
компилятор Borland C++ выдает ошибки говорит что не могу работать со стрингом и с гелайном а так же не могу открывать таким обозом файлы

восемь ошибок дает
я думал что разнице нет между компилятором gcc(g++) и Borland C++

помогите перестроить под вин а то на работе не хотят ставять линукс
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...
saidmir вне форума Ответить с цитированием
Старый 04.06.2011, 18:53   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

есть огромная разница.
а вам не взять gcc под вин?(MinGW)
(или вам нужно древнее под дос?)

вообще минимальные исправления это убрать using(в BC++ про std namespace не слышали) и соответственно к инклюдникам приписать .h
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.06.2011, 19:33   #3
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

А еще лучше поставить MS Visual C++ и написать сверху #include <string>
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 04.06.2011, 19:38   #4
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
есть огромная разница.
а вам не взять gcc под вин?(MinGW)
(или вам нужно древнее под дос?)

вообще минимальные исправления это убрать using(в BC++ про std namespace не слышали) и соответственно к инклюдникам приписать .h

с .h не помогло но нашел DevC++

http://www.softtime.ru/cpp_info/dev_cpp.php

думаю получиться

Спасибо

Цитата:
Сообщение от Syuf Посмотреть сообщение
А еще лучше поставить MS Visual C++ и написать сверху #include <string>
машина 386 прогу не потянет пргбывали там 95 вин стоит

Спасибо за помощь
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...

Последний раз редактировалось Stilet; 04.06.2011 в 20:58.
saidmir вне форума Ответить с цитированием
Старый 04.06.2011, 21:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
машина 386 прогу не потянет пргбывали там 95 вин стоит
На другой машине компилируй, а на этой запускай.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2011, 23:39   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Во времена BC++ подавляющего большинства всех этих штук вообще не было. Под ним этот код не пойдет.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.06.2011, 08:44   #7
saidmir
Пользователь
 
Аватар для saidmir
 
Регистрация: 04.07.2010
Сообщений: 19
По умолчанию

Все нашел и потавил gcc компилятор под виндовс
но только вот тут не большая проблемка
при запуске под линукс работает все так как задумано было
то есть перемещает содержимое файла second.txt в first.ini удаля две последнии строки


Код:
saidmir@saidmir-desktop:~/Документы/Wiki/cpp$ cat first.ini 
3
2
saidmir
I never
saidmir@saidmir-desktop:~/Документы/Wiki/cpp$ cat second.txt 
Love
C++ is dificult language for me very match
I don't know why
saidmir@saidmir-desktop:~/Документы/Wiki/cpp$ ./12 (выполнели срипт)
saidmir@saidmir-desktop:~/Документы/Wiki/cpp$ cat first.ini 
3
2
Love
C++ is dificult language for me very match
I don't know why
saidmir@saidmir-desktop:~/Документы/Wiki/cpp$ cat second.txt 
saidmir@saidmir-desktop:~/Документы/Wiki/cpp$
а в виндовсе у меня тот же скрипт работает так что очищает два файла и все
почему так происходит и в чемошибка и как ее исправить?

вот последняя модификация ода и опять таки под линуксом все как нужно а под виндой нет
Код:
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;

int main() {

// wrire content first.ini from vector
   fstream file1("first.ini");
   string line;
   vector<string> lines;
   while (getline(file1, line))
      lines.push_back(line);
   file1.close();
   
// write date in first.ini from second.txt 
// and delete last two raws
   file1.open("first.ini", ios::out | ios::trunc);
   for (size_t i = 0; i < lines.size() - 2; ++i)
      file1 << lines[i] << endl;
   ifstream file2("second.txt");
   while (getline(file2, line))
      file1 << line << endl;
      
  // clean file second.txt
    ofstream rewrite("second.txt");
    rewrite.write("", 0);
    rewrite.close(); 

 // masage
    int a;
    cout<<"Copy finished\nPress 0 for continue\t";
    cin>>a;
}
Кто я в этом деле?
Хотелось писать под Mac OS X, но необходимость писать под Windows тоже интересное занятие...

Последний раз редактировалось saidmir; 05.06.2011 в 10:42. Причина: добавил код С++
saidmir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каких случаях ставится символ & ? hatsub Общие вопросы C/C++ 22 29.01.2011 16:30
Регистрация на сайте журнала: быть или не быть Levsha100 Свободное общение 12 12.06.2010 00:39
Вкаких случаях может быть полезной процедура SetLength Ainur Помощь студентам 2 22.05.2009 12:01
изменение параметров протокола, таких как IP-адрес, маска, шлюз и DNS сервер Илья М. Работа с сетью в Delphi 1 12.04.2007 12:53