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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
Гость72
Сообщений: n/a
#1

Вопрос по работе с массивами - C++

13.10.2008, 10:44. Просмотров 2324. Ответов 9
Метки нет (Все метки)

Уважаемые!
Пишу программу на Си разбиения текста на страницы, возник вопрос как в двумерный массив после каждой десятой строки вставить строку состоящую из пробелов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2008, 10:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос по работе с массивами (C++):

Задание по работе с массивами - C++
Задание по работе с массивами: Вводится массив и некоторое число X. Сколько в массиве интервалов, куда попадает заданное число. я сам...

Учебник C++ по работе с массивами в примерах - C++
Возникли трудности в написании программы сравнивающей несколько массивов. Подскажите норм учебник в примерах C++ ток чтоб углубленный. ...

Проблемма при работе с массивами структур - C++
Разработать программу , позволяющую добавлять данные структур с указанными полями в массив, просматривать массивы, а также выполнять...

О работе с динамическими двумерными (многомерными) массивами - C++
Всех с наступающим профессиональным праздником, многоуважаемые гуру С++! задачка простая - работа с данными в двумерном динамическом...

Ошибка при работе с массивами char - C++
Задание: написать функцию для сложения целых двоичных чисел. Слагаемые должны иметь тип unsigned char. Вот что получилось, но после...

Ошибка в работе в цикле с динамическими массивами - C++
Здравствуйте! После ввода 5 значения вылетает ошибка о невозможности чтения данных.Можете,пожалуйста,подсказать почему? #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Гость72
Сообщений: n/a
13.10.2008, 13:46 #2
Вот я начал , записал в массив , дальше не знаю что делать...
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
#include<stdio.h>
#define maxline 1000
 
int num=0;
char buff[512];
main()
{
    char *str;
    char line[][maxline ] = {0,0,0,0,0,0,0,0,0,0};
    FILE *file;
    int i=0;
    int k=0;
    char *p="file.txt";
    file=fopen(p,"r");
    
    if( file == 0 )
    {
        printf ( "File not found !!!" );
        return(-1);
    }
        while ((num = fread(buff, 1, 512, file)) > 0) 
        {
            while (buff[k]!='\0')
            {
                line[i][k]=buff[k];
                k++;
            }
            i++;
        }
 }
qwone
9 / 9 / 1
Регистрация: 18.08.2008
Сообщений: 129
13.10.2008, 17:38 #3
во первых надо открыть 2 файла
1-й для чтения(это источник) ,2-й для записи(это приемник).
с первой считал - во вторую записал .
ну а после 10 строки залил во второй пробельную строку.
и опять
с первой считал - во вторую записал .
когда первый файл не кончиться.
0
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
13.10.2008, 18:19 #4
глядя на код, в первую строчку 2-х мерного массива запишется 512 символов и все.
если не брать во внимание 478 мест под символы в массиве в которые ничего не записывать то цикл можно оформить так:
(и объявить массив я думаю надо line[????][maxline ])
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
while ((num = fread(buff, 1, 512, file)) > 0) 
{
while (buff[k]!='\0')
{
line[i][k]=buff[k];
k++;
}
i++;
if(i=1000)
break;
k=0;
d++;
if(d>9)
{
for(d=0;d<512;d++)
line[i][d]=' ';
d=0;
i++;
}
}
0
Гость72
Сообщений: n/a
13.10.2008, 21:44 #5
Цитата Сообщение от qwone Посмотреть сообщение
во первых надо открыть 2 файла
1-й для чтения(это источник) ,2-й для записи(это приемник).
с первой считал - во вторую записал .
ну а после 10 строки залил во второй пробельную строку.
и опять
с первой считал - во вторую записал .
когда первый файл не кончиться.
По идеи у меня в лабе задание вывести через stderr, но я не знаю эту функцию, и время читать нету , ещё мат аны всякие( . Я хотел вывести просто через printf()
Гость72
Сообщений: n/a
13.10.2008, 22:35 #6
Спасибо, буду дальше разбираться.
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
14.10.2008, 00:43 #7
Цитата Сообщение от Гость72 Посмотреть сообщение
По идеи у меня в лабе задание вывести через stderr, но я не знаю эту функцию, и время читать нету , ещё мат аны всякие( . Я хотел вывести просто через printf()
так а в задании было о 2 мерном массиве?
если нет, то файл просто можно вывести в поток сообщений об ошибках разделяя через каждые 10 строк пустой строкой.
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char buf[80];
    char *m[1000];
    int i=0,b=0,c=0;
    FILE *in;
    in=fopen("stderr.txt","rb");
        while(fgets(buf,79,in)!=NULL)
        {
            m[i]=malloc(strlen(buf)+1);
            strcpy(m[i],buf);
            i++;
        }
        for(b=0;b<i;b++)
        {
 
            if(c>9)
            {
                fprintf(stderr,"\n");
                c=0;
            }
            fprintf(stderr,"%s",m[b]);
            c++;
        }
    fclose(in);
    return 0;
}
0
Гость72
Сообщений: n/a
14.10.2008, 20:22 #8
Цитата Сообщение от Prividenie Посмотреть сообщение
так а в задании было о 2 мерном массиве?
если нет, то файл просто можно вывести в поток сообщений об ошибках разделяя через каждые 10 строк пустой строкой.
Не про массив ничего не было , это я решил так реализовать...Ща посмотрю что ты мне подсказал попробую разобраться.
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
14.10.2008, 21:02 #9
если без массива то можно просто построчно в stderr выводить и все
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main()
{
    char buf[80];
    int c=0;
    FILE *in;
    in=fopen("stderr.txt","rb");
    while(fgets(buf,79,in)!=NULL)
    {
        if(c>9)
        {
            fprintf(stderr,"\n");
            c=0;
        }
        fprintf(stderr,"%s",buf);
        c++;
    }
    fclose(in);
    return 0;
}
1
Гость72
Сообщений: n/a
18.10.2008, 19:54 #10
Спасибо, все работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2008, 19:54
Привет! Вот еще темы с ответами:

Использование указателей при работе с одномерными массивами - C++
Реализовать на Си. Даны натуральное число n, действительные числа a1,...,an. Если последовательность a1,...,an упорядочена по...

Ошибка в перегрузке оператора - при работе с массивами - C++
Текст программы: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; class array { public: array(); ...

Ошибка с памятью при работе с двумерными массивами. - C++
{ int i, j, c, kol; n=StrToInt(Edit1-&gt;Text); m=StrToInt(Edit2-&gt;Text); for(i=0; i&lt;n; i++) { for(j=0; j&lt;m; j++)...

Указатели при работе с одномерными и двумерными массивами - C++
Помогите Даны натуральное число n, целые числа а1,...,аn . Выяснить, имеется ли среди чисел а1,...,аn совпадающие.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.10.2008, 19:54
Ответ Создать тему
Опции темы

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