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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Uinslou
Старичок :)
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
#1

Вывести каждые 4 строки через 1 пустую. - C++

05.05.2011, 22:17. Просмотров 1522. Ответов 6
Метки нет (Все метки)

Здравствуйте, Уважаемые форумчане

Вот есть собственно код:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
de "stdafx.h"
#include <iostream>
#include <fstream>
#include <locale.h>
using namespace std;
using namespace System;
 
void main (void)
{
setlocale(LC_ALL,"Russian");
 
char A[100][1000] = { 0 }; //Твой массив Максимум 100 строк по 1000 символов в каждой
FILE *input1 = fopen("1.txt","r");
int CountStr = 0; //Счетчик строк
if (!input1)
{
cout<<"Error";
}
 
int i=0; //Счетчик позиции в строке
while(!feof(input1))//Пока не достигнуто конец файла чистаем по-символьно
{
fscanf(input1, "%c", &A[CountStr][i]); //Читаем символ
if (A[CountStr][i] == '\n') //Если символ является символом возврата корретки (переход на новую строку)
{
A[CountStr][i+1] = 0; //Поставим завершающий символ строки
CountStr++; //Увеличим счетчик строк
i=0; //Позицию в строке обнулим
}
else i++; //Иначе увеличиваем счетчик позиций в строке
}
//На выходе у нас получается:
//CountStr - кол-во строк
//A - массив с данными первого файла с кол-вом строк CountStr
fclose(input1);
 
char B[100][1000] = { 0 }; //Твой массив Максимум 100 строк по 1000 символов в каждой
char c = '\n';
FILE *input2 = fopen("2.txt","r");
int CountStr1 = 0; //Счетчик строк
if (!input2)
{
cout<<"Error";
}
 
while(!feof(input2))//Пока не достигнуто конец файла чистаем по-символьно
{
fscanf(input2, "%c", &B[CountStr1][i]); //Читаем символ
if (B[CountStr1][i] == '\n') //Если символ является символом возврата корретки (переход на новую строку)
{
B[CountStr1][i+1] = 0; //Поставим завершающий символ строки
CountStr1++; //Увеличим счетчик строк
i=0; //Позицию в строке обнулим
}
else i++; //Иначе увеличиваем счетчик позиций в строке
}
fclose(input2);
 
printf ("%s", A[1]);
printf ("%s", B[1]);
printf ("\n");
system ("pause");
}
Нужно вывести каждые 4 строки через 1 пустую, т.е идет 4 строки мы их выводим, потом пустая, потом еще 4 строки их опять выводим. Кодировка тхт файлов ANSI. Как то так должно быть: мы выводим строку вопрос, потом 4 строки ответы, строка для запоминания ответа, выводим 2 вопрос. Почему выводится 1 строка из вопросов, но 4 подряд ни как не выводятся ? Спасибо заранее
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 22:17     Вывести каждые 4 строки через 1 пустую.
Посмотрите здесь:
Вставка символа через каждые 8 букв C++
C++ Реализовать функцию, возвращающую i-е по счету слово от начала строки s, либо пустую строку
C++ Таймер который запускается по новой через каждые полчаса
C++ Уменьшение числа на единицу через каждые два шага
C++ Вывести на экран каждые три элемента массива размером 15
C++ Заполните массив последовательностью, в которой через каждые 5 элементов записываемое значение увеличивается
Заполнить массив последовательностью, в которой через каждые 8 элементов записываемое значение увеличивается C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.05.2011, 04:18     Вывести каждые 4 строки через 1 пустую. #2
C
1
2
    if (lineno > 1 && lineno % 4 == 0)
        putchar('\n');
Uinslou
Старичок :)
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
06.05.2011, 18:38  [ТС]     Вывести каждые 4 строки через 1 пустую. #3
Что-то не понял

Добавлено через 27 минут
На c++ надо)
Mиxaил
532 / 437 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
06.05.2011, 19:43     Вывести каждые 4 строки через 1 пустую. #4
Uinslou, у тебя у самого на Си написано...
Uinslou
Старичок :)
728 / 315 / 5
Регистрация: 03.04.2011
Сообщений: 1,430
07.05.2011, 13:59  [ТС]     Вывести каждые 4 строки через 1 пустую. #5
Ой сорри ребят, запутался немного

Ну да ладно. Вот есть вот этот код у меня, почему же не получается ? Вот Уважаемый accept написал мне видимо решение моей проблемы, однако я не понял к сожалению что к чему Объясните пожалуйста.

Добавлено через 17 часов 46 минут
Есть идеи ?
ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 14:06     Вывести каждые 4 строки через 1 пустую. #6
C
1
2
    if (lineno > 1 && lineno % 4 == 0)    //если номер строки больше 1 и кратен четырём
        putchar('\n');    //печатаем пробел
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2011, 08:28     Вывести каждые 4 строки через 1 пустую.
Еще ссылки по теме:
C++ Строки. В тексте поменять местами каждые два соседних слова
C++ Введенный текст вывести на экран, меняя местами каждые два слова
C++ Как обозначается перенос строки? Как мне удалить пустую строку?
Вывести все введенные строки. Отсортировать строки. Вывести самую длинную строку C++
C++ Строки. Считывание текста и его вывод, в котором каждые 2 соседних слова меняются местами

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

Или воспользуйтесь поиском по форуму:
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.05.2011, 08:28     Вывести каждые 4 строки через 1 пустую. #7
Цитата Сообщение от Uinslou
Вот Уважаемый accept написал мне видимо решение моей проблемы, однако я не понял к сожалению что к чему
надо вставить это условие в цикл, который читает файл построчно

C
1
2
    while (fgets(line, sizeof line, ifp) != NULL)
        if ...
необязательно, конечно, через fgets(), особенно если строка неизвестной длины
но всё равно нужен цикл, который читает файл, и в нём счётчик строк и условие
Yandex
Объявления
09.05.2011, 08:28     Вывести каждые 4 строки через 1 пустую.
Ответ Создать тему
Опции темы

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