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

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

Войти
Регистрация
Восстановить пароль
 
O][o7n1k
 Аватар для O][o7n1k
7 / 7 / 1
Регистрация: 26.02.2009
Сообщений: 64
#1

Программа - C++

17.01.2011, 18:57. Просмотров 386. Ответов 6
Метки нет (Все метки)

Не могу понять где ошибка,помогите пожалуйста.
Прочитать из файла строку символов. Изменить данную строку так, чтобы каждый символ не цифра был заменен цифрой. Цифры при замене брать последовательно, начиная с 9 и заканчивая 0. Новую строку не создавать. Вывести исходную и преобразованную строки.
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
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
main()
{
    char* st,buf;
    
    int i=1,j=0,jj=9;
    ifstream in("read.txt", ios::in);
    if (!in)
    {
        cout << "Can't open file!\n";
    }
     cout <<"Ishodnaya stroka:";
     
       in>>st;
       in.close();  
     cout<<st;
 
     while (st[i]!='\0'){
    if ((st[i]<'0')||(st[i]>'9')) st[i]=itoa(jj,buf,8),i++,jj++;//<-где то тут 
    if (jj==0) jj=9;
                      }
 
    cout<<"Poluchenaya stroka:" <<st;
    
    getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
17.01.2011, 20:00     Программа #2
Функция itoa не возвращает строку или символ.
C++
1
2
3
4
5
6
//Неправильно
st[i] = itoa(jj, buf, 8);
 
//Правильно (и почему число должно представляться в восьмеричной, а не десятичной системе исчисления?)
itoa(jj, buf, 10);
st[i] = buf[0];
O][o7n1k
 Аватар для O][o7n1k
7 / 7 / 1
Регистрация: 26.02.2009
Сообщений: 64
17.01.2011, 20:32  [ТС]     Программа #3
Цитата Сообщение от x1Mike7x Посмотреть сообщение
Функция itoa не возвращает строку или символ.
C++
1
2
3
4
5
6
//Неправильно
st[i] = itoa(jj, buf, 8);
 
//Правильно (и почему число должно представляться в восьмеричной, а не десятичной системе исчисления?)
itoa(jj, buf, 10);
st[i] = buf[0];
Спасибо,переделал,но программа теперь не компилируется - пишет ошибку сегментации

Добавлено через 19 минут
Цитата Сообщение от O][o7n1k Посмотреть сообщение
Спасибо,переделал,но программа теперь не компилируется - пишет ошибку сегментации
ошибка чтения из файла,странно,даже очень
отдельно код чтения работает без проблем
магия какая то =/
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
17.01.2011, 21:57     Программа #4
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
int main(){
    char s[50];
    char j='9';
    ifstream in("read.txt", ios::in);
    if (!in){
        cout << "Can't open file!\n";
    }
    cout <<"Ishodnaya stroka:\n";
    in.getline(s, 50);
    in.close();
    cout<<s;
    for(int i=0; i<strlen(s); i++){
        if ((s[i]<'0')||(s[i]>'9')){
            s[i]=j;
            --j;
        }
        if (j=='0') j='9';
    }
    cout<<"\n\nPoluchenaya stroka:\n"<<s;
}
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
17.01.2011, 22:33     Программа #5
ошибка чтения из файла,странно,даже очень
отдельно код чтения работает без проблем
магия какая то =/
Попробуйте определить размер для строк:
C++
1
char st[44], buf[1];
Арсени_й
Сообщений: n/a
17.01.2011, 23:00     Программа #6
Здраствуйте всем.Я новичок.Прямо только недавно стал изучать с++.Я не понимаю в чем тут ошибка,почему компилятор не запускает эту программу маленькую.Вот сообщение об ошибке--------------------Configuration: fuck you - Win32 Debug--------------------
Compiling...
fuck you.cpp
C:\Documents and Settings\Àðñåíèé\Application Data\33F59F7Ba\keys\fuck you.cpp(6) : error C2065: 'endl' : undeclared identifier
C:\Documents and Settings\Àðñåíèé\Application Data\33F59F7Ba\keys\fuck you.cpp(8) : error C2065: 'end' : undeclared identifier
Error executing cl.exe.

fuck you.obj - 2 error(s), 0 warning(s)
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main()
{
    int x = 5;
     int y = 7;
      std::cout << endl;
      std::cout << x + y << " " << x * y;
       std::cout << end;
return 0;
}
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
17.01.2011, 23:03     Программа #7
std::endl;
Yandex
Объявления
17.01.2011, 23:03     Программа
Ответ Создать тему
Опции темы

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