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

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

Восстановить пароль Регистрация
 
O][o7n1k
 Аватар для O][o7n1k
7 / 7 / 1
Регистрация: 26.02.2009
Сообщений: 64
17.01.2011, 18:57     Программа #1
Не могу понять где ошибка,помогите пожалуйста.
Прочитать из файла строку символов. Изменить данную строку так, чтобы каждый символ не цифра был заменен цифрой. Цифры при замене брать последовательно, начиная с 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
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 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
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
17.01.2011, 23:03     Программа #7
std::endl;
Yandex
Объявления
17.01.2011, 23:03     Программа
Ответ Создать тему
Опции темы

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