Форум программистов, компьютерный форум CyberForum.ru

Удалить из каждой строки файла первые K символов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить минимальный элемент http://www.cyberforum.ru/cpp-beginners/thread597118.html
В одномерном массиве вычислить минимальный элемент и вытолкнуть его из массива. Помогите пож.
C++ Описать структуру с именем WORKER, содержащую следующие поля Описать структуру с именем WORKER, содержащую следующие поля: 1) фамилия и инициалы работника; 2) название занимаемой должности; 3) год поступления на работу. Написать программу, выполняющую следующие действия: 1. ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER; 2. записи должны быть размещены по алфавиту; 3. вывод на дисплей фамилий работников, чей стаж... http://www.cyberforum.ru/cpp-beginners/thread597097.html
C++ Описать структуру с именем AEROFLOT, содержащую следующие поля
Описать структуру с именем AEROFLOT, содержащую следующие поля: 1) название пункта назначения рейса; 2) номер рейса; 3) тип самолета. Написать программу, выполняющую следующие действия: 1. ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; 2. записи должны быть упорядочены по возрастанию номера рейса; 3. вывод на экран номеров рейсов и типов самолетов,...
C++ Проверить замечательный предел
Проверит численно второй замечательный предел lim(1+1\n)в степени n при n стремящемся к бесконечности=e, задавая n значения 1,2,3... При каком n исследуемой выражение отличается от e меньше, чем на заданную погрешность E. #include<iostream.h> #include<math.h> main() { double E,x,e=2.72,; double n; cout<<"vvedite pogreshnost"; cin>>E;
C++ Описать структуру с именем STUDENT, содержащую следующие поля http://www.cyberforum.ru/cpp-beginners/thread597080.html
Описать структуру с именем STUDENT, содержащую следующие поля: 1) фамилия и инициалы; 2) номер группы; 3) успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия: 1. ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT;
C++ Применение strtok() для получения слова Ребят, задача собственно, такая: у заданного текста поменять местами первое и последнее слово. Алгоритм у меня такой. Я с помощью strtok получаю первое и последнее слова, затем, мне нужно посчитать длину текста, расположенного между ними(между первым и последним словом). Длина текста между первым и последним словом= длина всей строки-(длина первого слова+длина последнего). Длины первого и... подробнее

Показать сообщение отдельно
Ксю92
 Аватар для Ксю92
73 / 7 / 0
Регистрация: 29.03.2011
Сообщений: 94
06.06.2012, 15:31  [ТС]     Удалить из каждой строки файла первые K символов
Вообщем что то не так... Программа просто не работает (открывается консольное окошко, ввожу имена файлов и тут просто "Прекращена работы программы"
Использовала компилятор GNU GCC, компилировала командой g++ Text18.cpp
Пробовала в RAD Studio сделать, но борландовский компилятор вообще на 34 и 36 строчку начал ругаться
Ошибки RAD Studio
[BCC32 Error] Text18.cpp(34): E2094 'operator>>' not implemented in type 'ifstream' for arguments of type 'std::string'
Full parser context
Text18.cpp(14): parsing: int main(int,char * *)
[BCC32 Error] Text18.cpp(36): E2094 'operator<<' not implemented in type 'ofstream' for arguments of type 'std::string'
Full parser context
Text18.cpp(14): parsing: int main(int,char * *)

Ошибка Windows
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: a.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 4fcf39bb
Имя модуля с ошибкой: libstdc++-6.dll
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 4e71847f
Код исключения: c0000005
Смещение исключения: 00079d4c
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?link...8&clcid=0x0419

Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <fstream>
#include <iostream>
 
int main(int argc, char ** argv)
{
  int k;
  
  char * fileName1;
  char * fileName2;
  
  std::cout << "Input file name -> ";
  std::cin >> fileName1;  
  std::cout << "Output file name -> ";
  std::cin >> fileName2;
  
  
  
  std::string buffer;
  std::ifstream file1(fileName1);
  std::ofstream file2(fileName2);
  
  std::cout << "k -> ";
  std::cin >> k;
  
  if (!file1.is_open())
  {
    std::cerr << "Can't open for input!" << std::endl;
    return 1;
  }
  else
  {
    while(!file1.eof())
    {
      file1 >> buffer;
      buffer.erase(0, k);
      file2 << buffer;
    } 
  }
  file1.close();
  file2.close();
  
  return 0;
}
Добавлено через 5 минут
Вроде можно этот кусочек кода
C++
1
2
3
4
5
6
while(!file1.eof())
    {
      file1 >> buffer;
      buffer.erase(0, k);
      file2 << buffer;
    }
реализовать без всяких там >><<... Как это сделать?

P.S. Если не сложно, то напишите, как реализовать file1 >> buffer; и file2 << buffer; по другому

Заранее спасибо))
 
Текущее время: 16:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru