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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Crydok
1 / 1 / 0
Регистрация: 16.12.2013
Сообщений: 27
#1

Считать первые 10 символов каждой строки - C++

17.05.2014, 20:43. Просмотров 380. Ответов 5
Метки нет (Все метки)

Здравствуйте! Помогите, пожалуйста, составить программу, которая бы считывала из файла по 10 символов с каждой строчки.Пытался сам,но знания в программировании невелики.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
  const int M=10;
  char buf[M];
  ifstream input("input.txt");
  ofstream out("output.txt");
  while (input.getline(buf, sizeof(M-1)))
      out<<buf<<'\n';
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 20:43     Считать первые 10 символов каждой строки
Посмотрите здесь:

Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. C++
Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В. C++
C++ Переписать первые элементы каждой строки матрицы D(3,3), которые больше 10, в массив В
C++ Удалить из каждой строки файла первые K символов
Прочитать первые 10 символов каждой строки из файла C++
C++ Как считать первое слово из каждой строки?
C++ Если строки одинаковы, объединить две строки, исключив из второй первые десять символов
C++ Получить из строк новую строку, содержащюю первые N1 символов строки S1 и последнии N2 символов строки S2
C++ Нарезать текст на строки по 60 символов в каждой
C++ Если длина строки больше 10 - оставить первые 6 символов, иначе дополнить строку символами 'о'
Считать текст из файла и записать в другой только строки, не содержащие определенных символов C++
В конец каждой строки текстового файла дописать количество символов этой строки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
17.05.2014, 22:06     Считать первые 10 символов каждой строки #2
C++
1
 while (input.getline(buf, 10))
и M сделайте 11 (на 1 больше) для терминального нуля.
Кстати, sizeof(M-1) равно sizeof(int)
Crydok
1 / 1 / 0
Регистрация: 16.12.2013
Сообщений: 27
18.05.2014, 09:22  [ТС]     Считать первые 10 символов каждой строки #3
Сделал, как вы говорите, но не выходит. Выходной файл пуст
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
18.05.2014, 09:38     Считать первые 10 символов каждой строки #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
  const int M=10;
  char buf[1000];
  ifstream input("input.txt");
  if(!input)
  {
      cout<<"input file open error"<<endl;
      system("pause");
      return 1;
  }
  ofstream out("output.txt");
  if(!out)
  {
      cout<<"input file open error"<<endl;
      system("pause");
      return 1;
  }
   while (input.getline(buf, 1000))
  {
    buf[M]=0;
    out<<buf<<endl;
  }
  out.close();
  cout<<"ressult in output.txt"<<endl;
  system("pause");
  return 0;
}
Crydok
1 / 1 / 0
Регистрация: 16.12.2013
Сообщений: 27
18.05.2014, 10:09  [ТС]     Считать первые 10 символов каждой строки #5
Может у меня что-то не так,но эффект тот же-файл на выходе пустой
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
18.05.2014, 10:13     Считать первые 10 символов каждой строки #6
Я исправил код. Оказывается, если в строке символов больше, чем требуется, то:
If the function extracts no elements or _Count - 1 elements, it calls setstate(failbit). In any case, it returns *this.
Yandex
Объявления
18.05.2014, 10:13     Считать первые 10 символов каждой строки
Ответ Создать тему
Опции темы

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