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

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

Восстановить пароль Регистрация
 
Crydok
1 / 1 / 0
Регистрация: 16.12.2013
Сообщений: 27
17.05.2014, 20:43     Считать первые 10 символов каждой строки #1
Здравствуйте! Помогите, пожалуйста, составить программу, которая бы считывала из файла по 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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,160
Завершенные тесты: 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
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,160
Завершенные тесты: 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
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,160
Завершенные тесты: 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 символов каждой строки
Ответ Создать тему
Опции темы

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