Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Medved_sendi
1

Работа с файлами и строками

02.12.2012, 12:51. Показов 837. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток дорогие пользователи форума.
в общем нужна Ваша помощь в написание лабы по C++
задание "Дан файл с числами фразами да и полностью любыми символам, пользователь вводит число допустим N, если число N больше числа из первого файла, то записывается во второй файл записывается N если меньше то число из первого файла, естественно остальной мусор тоже.Форматирование сохраняется.
Пример:
число N=50.
Входной файл:
asd@#asd1222adfghj23
sdfsdf123123g22g1231f
Выходной файл:
asd@#asd50adfghj23
sdfsdf50g22g50f
кое что написал, даже компилируется) но после выдает ошибку
"Необработанное исключение в "0x7c91ac4a" в "lab2_10.exe": 0xC0000005: Нарушение прав доступа при записи "0x00000728"." и кнопки прервать, продолжить.
не могли бы помочь?
выкладываю свой исходник

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
64
65
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    FILE *fo,*fo2 ; 
    if( (fo=fopen("test.txt","r")) == NULL ) 
     {  
       
      printf  (" \n Исходный файл не найден \n");
           return 2 ;
     } 
    if( (fo2=fopen("result.txt","w")) == NULL ) 
     {  
       
     printf  (" \n не создал файл \n");
           return 3 ;
     } 
 
 
    char chislo_str[100];
    char n;
    int chislo_input=20;
    int  nod=0,x=1;
 
    while (!feof(fo))
    {
 
        n=getc(fo);
       int acsii = static_cast<int>(n);
       if (acsii<=48 && acsii>=57)
       {
          if (nod=1) 
               {
                   if (chislo_input>atoi(chislo_str))
                         fprintf(fo2,"%s",chislo_input);
                     else
                         fprintf(fo2,"%s",chislo_str);
         
                  nod=0;
                 for (n=strlen(chislo_str);n>0;n--) 
                   chislo_str[n]='\0';
            
                  x=0;    
               }         
               else 
               fprintf(fo2,"%s",n);
       }
 
       nod = 1;
       chislo_str[x]=n;
       x++;
    }
    fclose(fo);
    fclose(fo2);
    
    return 0;
}
среда разработки MS Visual C++ 2010
так же приму другие варианты реализации данной программы, если можно то с комментариями
Заранее спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2012, 12:51
Ответы с готовыми решениями:

Работа со строками и файлами
Задание, написать программу, считывающую текст из файла, и определяет количество в нем слов,...

Работа со строками и файлами
года 2 не кодил на С++ вот решил вспомнить... суть задачи: открываем текстовый документ,и...

Работа с файлами и строками.
Прошу помочь с этой задачкой, ибо СИ дается почему-то сложнее Паскаля, а темы на файлы, по-моему,...

Работа с файлами и строками
Здравствуйте, помогите,пожалуйста, с решение лабораторной по инфе. Нужно написать программу,...

1
Medved_sendi
16.12.2012, 10:17 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
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
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int file()
{
FILE *fo,*fo2 ; 
if( (fo=fopen("test.txt","r")) == NULL ) 
{ 
    printf (" \n Исходный файл не найден \n");
    return 1 ;
} 
if( (fo2=fopen("result.txt","w")) == NULL ) 
{
    printf (" \n не создал файл \n");
    return 2 ;
} 
fclose(fo);
fclose(fo2);
};
 
int glav()
{
FILE *fo,*fo2;
char chislo_str[100]=" ";
char n;
int chislo_input,nod=0,x=0;//счёт в массивах ведется от нуля
fo=fopen("test.txt","r");
fo2=fopen("result.txt","w");
printf (" \n Введите любимое число:");
scanf("%d",&chislo_input);
while (!feof(fo))
{
    n=getc(fo);
    if (n>='0' && n<=57)//если не цифра
    {  
        chislo_str[x]=n;
        x++;
        nod=1;
    }
    else 
    {
        if (nod==1)//если до этого была цифра 
        {
     if (chislo_input<(atoi(chislo_str)))
     {
         fprintf(fo2,"%d",chislo_input);
     }
     else
     {
         fprintf(fo2,"%s",chislo_str);
     }
 
     nod=0;
         chislo_str[0]='\0';
     x=0; 
        }
        fprintf(fo2,"%c",n);
    }
}
fclose(fo);
fclose(fo2);
}
 
int main()
{
    file(); 
    glav();
    return 0;
}
Среда разработки wxDev-C++
16.12.2012, 10:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2012, 10:17
Помогаю со студенческими работами здесь

Работа с файлами, со строками
Как сделать это?- -Сформировать текстовый файл, напечатать его содержимое, вставляя в начало...

Работа со строками и файлами
Приветствую! Проблема заключается в следующем: нужно ввести наименование товара, которое может...

Работа со строками и файлами
Записать в файл элементы другого файла (со словами) выровненные по правому краю. Программно...

Работа с файлами и строками
Раздел &quot;Работа с файлами и строками&quot; Задание :&quot;Написать программу, которая считывает английский...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru