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

Работа со строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция strcat http://www.cyberforum.ru/cpp-beginners/thread17916.html
Нужно написать прогу на C++ и Ассемблере...функцмя strcat(на ассемблере сделал а вот на C++ не могу).Если кто поможет буду очень признателен....а если ещё и с пояснением то огромное спасибо заранее(в C++ полный 0)
C++ Динамическая память Народ, если кому не сложно помогите переделать вот эту программу со структурами нужно сделать так чтобы для хранения данных она использовала динамическую память вот программа: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> struct event{ http://www.cyberforum.ru/cpp-beginners/thread17864.html
Создание электронных часов в графическом режиме Borland C++ C++
Как создать электронные часы в графическом режиме Borland C++ ?
C++ Определить процент элементов с неотрицательными значениями в одномерном массиве
В общем я на первом курсе и в програминге практически не разбираюсь. Пытался выполнить задание, но ничего не получилось. Если знаете, помогите пожалуйста. Заранее спасибо. Задание такое: определить процент эелеметнов а(с индексом i внизу) с неотрицательными значениями в исходном одномерноем массиве а. Ограничения (1<=i<=imax; imax<=10) Вводимые величины - imax, массив а Выводимые велечины -...
C++ Сохранение всех входящих лексем(строк) в порядке поступления http://www.cyberforum.ru/cpp-beginners/thread17291.html
:help: Уже ни первый день бьюсь над ошибкой в подпрограмме транслятора? :wall: Цель подпрограммы: сохранение всех входящих лексем(строк) в порядке поступления. Описание: в динамическом массиве сохраняются только ранее неизвестные лексем. А порядок поступления обеспечивает массив указателей, ссылаясь на динамический массив. Реализация: struct entry { char importance; }; struct entry...
C++ Комментарии к Системе счисления Кто может напишите комментарии к проге,просто по отдельности нет смысла спрашивать потому что очень много что не понятна! Из 2-ой в 10-ую и обратно #include<iostream.h> #include<math.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<string.h> void main(void) подробнее

Показать сообщение отдельно
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.12.2008, 23:20     Работа со строками
//вот тут была ошибка, иначе читалось только две строки. потом j=3, i=2 и все ..
j=1;
наоборот у меня было без ошибок ты переделал с ошибкой, задание прочитай


Код
 
#include <stdio.h>

#define MAXLINE  1000    /* максимальная длина строки */
#define IN  1            /* внутри пропусков */
#define OUT 0            /* снаружи пропусков */

/* читает строки из файла, а потом записывает их определённым образом 
   первую оставить, вторую - удалить, на месте её - пустая строка и т.д.;
   с перезаписью файла */
main()
{
    void filecopy(FILE *, FILE *); // функция будет использоваться в этой области
    FILE *fp, *tfp;
    char line[MAXLINE], *p;
    int state;
    long i, j, nl;
    const char *fname = "file.txt";
        
    if ((fp = fopen(fname, "rb")) == NULL)
        return 1;
    if ((tfp = tmpfile()) == NULL)
        return 2;
    i = j = nl = 0;
    while ((p = fgets(line, MAXLINE, fp)) != NULL) { // NULL будет когда файл закончится
        nl++; // считает каждую строку
        if (i == 0) { // пока i > 0 вставлять пустые строки
            j++; // сколько пустых строк вставлять на этот раз (должно расти по условию)
            i = j; // ставит верхнюю границу, которую снижает до нуля
            state = OUT; // флаг - выводить строку
        } else {
            i--; // сколько ещё пустых строк осталось вывести
            state = IN; // флаг - скрыть строку
        }
        // флаг управляет выводом:
        // что вывести с номером? строку или пустую строку
        fprintf(tfp, "%03d:%s", nl, (state == OUT ? line : "\n"));
    }
    fclose(fp);
    rewind(tfp); // переводит указатель темпового файла в начало, т.к. туда писались строки
    if ((fp = fopen(fname, "wb")) == NULL) // файл может иметь только право на чтение, проверит
        return 3;
    filecopy(tfp, fp);
    fclose(tfp); // стирает темповый файл
    fclose(fp);
    return 0;
}

/* filecopy:  копирование файла ifp в файл ofp */
void filecopy(FILE *ifp, FILE *ofp)
{
    int c;
    
    while ((c = getc(ifp)) != EOF)
        putc(c, ofp);
}
Добавлено через 7 минут 40 секунд
const char *tname = "temp.txt"; // сюда пишем
в каталоге может быть запрет на изменение списка файлов

//temp.txt если не существует - будет создан
не будет создан

и программу закинуть в такой каталог можно - моя сработает а твоя завалится

Добавлено через 4 минуты 6 секунд
и ещё там может лежать файл temp.txt в котором уже может быть что-то важное (от другой программы например твоей же такой же)

Добавлено через 1 минуту 14 секунд
так что сначала у себя в голове ошибки исправь

Добавлено через 11 минут 18 секунд
//вот тут была ошибка, иначе читалось только две строки
всё там правильно
 
Текущее время: 12:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru