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

замена отрицательных чисел - C++

Восстановить пароль Регистрация
 
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 18:22     замена отрицательных чисел #1
Добрый вечер! Пожалуйста помогите с задачей: во входном файле лежит строка, состоящая из букв, чисел и символов. Ее нужно прочесть и там где в строке начинается число, считать его и проверить положительное оно или отрицательное (отрицательным оно будет считаться если перед ним без проблов стоит '-', если с пробелом стоит '-', то значит это просто тире). Нужно, чтобы программа в выходной файл выводила эту же строку, в которой вместо отрицательных чисел стоит положительное число. Нужно воспользоваться библиотекой math.h и функцией fabs.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 19:20     замена отрицательных чисел #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
#include <iostream>
#include <stdlib>
using namespace std;
int main(){
   FILE * fi, * fo;
 
   if ((fi = fopen("test.txt", "rt")) == NULL) {
      cout << "Cannot open input file.\n";
      system("pause");
      return 1;
   }
   if ((fo = fopen("test_out.txt","wt")) == NULL) {
      cout << "Cannot create output file.\n";
      system("pause");
      return 1;
   }
   char n;
   fscanf( fi, "%c", &n );
   while( !feof(fi) ) {
     if ((n == '-')){
        fscanf(fi, "%c",&n);
        if (isdigit(n))
            fprintf( fo, "%c", n );
        else
            fprintf(fo,"%c%c",'-',n);
        fscanf( fi, "%c", &n );
     }else{
        fprintf( fo, "%c", n );
        fscanf( fi, "%c", &n );
     }
   }
   fclose(fi);
   fclose(fo);
 
   system("pause");
   return 0;
}
Пожалуйста.
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 19:41  [ТС]     замена отрицательных чисел #3
Спасибо большое, только я забыл сказать что он нужен на С)
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 20:17  [ТС]     замена отрицательных чисел #4
ошибка в строке после объявления библиотек using namespace std;
Миниатюры
замена отрицательных чисел  
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.12.2011, 20:23     замена отрицательных чисел #5
bacekk,
C++
1
#include <stdlib.h>
Добавлено через 42 секунды
А лучше
C++
1
#include <cstdlib>
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:24     замена отрицательных чисел #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
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
 
int main(void){
   FILE * fi, * fo;
 
   if ((fi = fopen("test.txt", "rt")) == NULL) {
      puts("Cannot open input file.\n");
      system("pause");
      return 1;
   }
   if ((fo = fopen("test_out.txt","wt")) == NULL) {
      puts("Cannot create output file.\n");
      system("pause");
      return 1;
   }
   char n;
   fscanf( fi, "%c", &n );
   while( !feof(fi) ) {
     if ((n == '-')){
        fscanf(fi, "%c",&n);
        if (isdigit(n))
            fprintf( fo, "%c", n );
        else
            fprintf(fo,"%c%c",'-',n);
        fscanf( fi, "%c", &n );
     }else{
        fprintf( fo, "%c", n );
        fscanf( fi, "%c", &n );
     }
   }
   fclose(fi);
   fclose(fo);
 
   system("pause");
   return 0;
}
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 20:38  [ТС]     замена отрицательных чисел #7
теперь вот это пишет. Проблема еще в том, что нужна библиотека math.h и с помощью fabs убирать минус перед числом, как это сделать не представляю...
Миниатюры
замена отрицательных чисел  
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:48     замена отрицательных чисел #8
system("pause") стрите (36 строчка)
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 21:02  [ТС]     замена отрицательных чисел #9
system("pause") стер на 10, 15 и 36 строчке, запускается, но cannot open input file, хотя я прописал все правильно, шож такое
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.12.2011, 21:12     замена отрицательных чисел #10
C
1
2
3
4
#include <cmath>
 
double x;
x = fabs ( x ) ;
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 21:49  [ТС]     замена отрицательных чисел #11
супер, тока применительно к заданию))

Добавлено через 28 минут
не знаете почему пишет Cannot open input file, хотя все прописано правильно и файлы созданы?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.12.2011, 21:55     замена отрицательных чисел #12
Цитата Сообщение от bacekk Посмотреть сообщение
не знаете почему пишет Cannot open input file, хотя все прописано правильно и файлы созданы?
Не найден такой файл
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 22:01     замена отрицательных чисел #13
Цитата Сообщение от bacekk Посмотреть сообщение
во входном файле лежит строка
создайте в папке с програмой файл test.txt с текстом который нужно заменить..Извиняюсь что не реализовал выбор файла, но вы с етим думаю справитесь )

п.с. выходной файл увидите в той же папке. Ждем результатов =)
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 22:19  [ТС]     замена отрицательных чисел #14
я ведь вроде все так сделал?
Миниатюры
замена отрицательных чисел   замена отрицательных чисел  
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.12.2011, 22:26     замена отрицательных чисел #15
bacekk, я у вас в папке .exe файла не видел
напишите полный путь к текстовому файлу, только помните, что обратный слэш удваивается.
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 22:58  [ТС]     замена отрицательных чисел #16
Нашел свои тупейшие ошибки! Спасибо огромное за помощь! Жаль только без fabs программа реализованна, но все равно очень вам признателен!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 23:03     замена отрицательных чисел
Еще ссылки по теме:

C++ Замена отрицательных элементов массива на их индексы
Замена отрицательных значений в файле нулями C++
Замена отрицательных элементов первой строчки на 0 C++

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

Или воспользуйтесь поиском по форуму:
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 23:03     замена отрицательных чисел #17
Я чтото не понял как можно реализовать с помощью fabs - может кто подскажет?
Yandex
Объявления
17.12.2011, 23:03     замена отрицательных чисел
Ответ Создать тему
Опции темы

Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru