Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.02.2009, 18:35   #1
ФЁкЛА
 
Регистрация: 25.02.2009
Сообщений: 4
Восклицание Работа с файлами

у меня есть программа.условие звучит так:"в конце каждой строки дописать ее длину.добавляемая строка имеет вид"строка имеет n символов".здесь n-количество символов в строке.нужно работать на файле,т.е. открыть какой то файл,переработать его как указано в задании и сохранить изменения в новый файл".я попыталась ее написать но она у меня ошибки выдает ,много.помогите исправить правильно программу,пожалуйсто.

Код:
#include <stdio.h>  
#include <string.h>  
#include <locale>  
  
const char *delim = ".;:!?"; //Массив разделителей  
  
char *strdlin (char *str,char *strdl) {  
    const int i=20;  
    char strd[i];  
    int n;  
    n = strlen[str];  
    strd = n;  
    strdl = strrep(strdl,20,1,strd);  
    }  
  
void lenever_str (char *file_name,char *strdlin) {   //дописывает в конце каджой строки её длину  
    FILE *input, *result;  
    if (!(input = fopen(file_name, "r"))) return;  
    if (!(result = fopen("result.txt", "w"))) return;  
    while (!feof(input)) {  
        char *buffer = new char [1000];  
        fgets(buffer, 1000, input);  
        buffer = strcat(buffer, strdlin);  
        fputs(buffer, result);  
    }  
    fclose(input);  
    fclose(result);  
}  
  
int main () {  
    char *file_name = "input.txt";  
    const int m=40;  
    char strdl[m];  
    printf("vvedite:добавляемая строка имеет n символов");  
    gets(strdl);  
    lenever_str(file_name, strdlin);  
    return 0;  
}
Модератор: тег CODE

Последний раз редактировалось MaTBeu; 25.02.2009 в 18:58.
ФЁкЛА вне форума
Старый 25.02.2009, 18:59   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Где и какие ошибки?
MaTBeu вне форума
Старый 25.02.2009, 19:46   #3
ФЁкЛА
 
Регистрация: 25.02.2009
Сообщений: 4
По умолчанию

ошибки типа cannot convert from 'int' to 'char [20]
и типа такой то идентификатор не найден))не понимаю че ему не нравиться,вроде все так
ФЁкЛА вне форума
Старый 25.02.2009, 22:06   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А где именно эти ошибки, блин я же конкретно вопрос поставил!!!
MaTBeu вне форума
Старый 25.02.2009, 22:13   #5
KVF
Пользователь
 
Регистрация: 27.07.2008
Сообщений: 30
По умолчанию

Код:
int main () {  
    char *file_name = "input.txt";  
    const int m=40;  
    char strdl[m];  
    printf("vvedite:добавляемая строка имеет n символов");  
    gets(strdl);  
    lenever_str(file_name, strdlin);  // сдесь наверно strdl должно быть =)
    return 0;  
}
KVF вне форума
Старый 25.02.2009, 22:23   #6
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Код:
 lenever_str(file_name, strdlin);
нет параметров у функции strdlin - вообще многое не понял в вашей задаче, например что должно передаваться в качестве второго параметра в функции strdlin

если здесь
Код:
void lenever_str (char *file_name,char *strdlin) {   //дописывает в конце каджой строки её длину  
    FILE *input, *result;  
    if (!(input = fopen(file_name, "r"))) return;  
    if (!(result = fopen("result.txt", "w"))) return;
функции типа void, то значение не возвращается оператором return - лучше сделать функцию типа int и возвратить значение при неправильном обращении к файлу.
capta1n вне форума
Старый 25.02.2009, 23:19   #7
ФЁкЛА
 
Регистрация: 25.02.2009
Сообщений: 4
По умолчанию

я сама не очень понимаю что к чему(((я просто пыталась сделать программу по образцу))мне скинули программу эту в таком варианте
Код:
#include <iostream>
#include <fstream>
#include <string>

int main()
{
    std::ifstream in("file.txt");
    std:: ofstream out("result.txt");

    if (!in || !out)
    {
        std::cerr << "Error" << std::endl;
        return -1;
    }

    std::string str;    
    while (getline(in, str))
    {
        out << str << str.size() << std::endl;
    }
    in.close();
    out.close();

    return 0;
}
но мы никогда не работали с операторами типа :: out,in,getline))
вы не подскажете как можно переделать эту программу под операторы printf, =))

Модератор: тег CODE

Последний раз редактировалось MaTBeu; 26.02.2009 в 18:32.
ФЁкЛА вне форума
Старый 25.02.2009, 23:41   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

ФЁкЛА Это пример на C++, а вам, как я понял, надо на C?

Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
FILE *in,*out;
char str[1000],buf[100];
in = fopen("file.txt","r");
if(!in)
 {
  printf("Error!\n");
  return -1;
 }
out = fopen("result.txt","w");

while (fgets(str, 1000,in))
{
itoa(strlen(str),buf,10);
if(!feof(in)) str[strlen(str)-1] = 0;
strcat(str,"  ");
strcat(str,buf);
strcat(str,"\n");
fputs(str,out);
}
fclose(in);
fclose(out);

return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 26.02.2009, 00:16   #9
ФЁкЛА
 
Регистрация: 25.02.2009
Сообщений: 4
По умолчанию

ага))спасибки вам всем большое))за всеее!
ФЁкЛА вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Yar Помощь студентам 2 02.06.2008 08:03
работа с файлами С++ Rossik Общие вопросы C/C++ 1 16.05.2008 19:28
Работа с файлами LeoN Общие вопросы Delphi 5 23.12.2006 13:33