0 / 0 / 1
Регистрация: 21.11.2013
Сообщений: 50
1

Переделать код под Visual studio, С++

04.01.2015, 16:41. Показов 1314. Ответов 9
Метки нет (Все метки)

Как переделать код под visual studio 2013 или хотя бы сказать работает ли она на visual studio 2012?
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
#include "argz.h"
 
int main()
{
    char* argz,str;
    char *const st0 = "qqq:rrrr:uu:ooo:p:wwww:888",number,*p,*const str0="6";
    size_t argz_len,argz_n,tmp;
 
    char  *const sttt = "bla bla bla";
    char N = 3, K = 4;
 
    //int x, *p, **q;
    /*
    x = 10;
    p = &x;
    if p==10
    q = &p;*/
    printf(" %s\n",st0);
    printf("2.1 argz_create_sep:");
    argz_create_sep (st0, 58 /*ASCII for : */, &argz, &argz_len); 
    printf(" %d\n",argz_len);
    argz_print(argz,argz_len);
 
    printf("2.2 argz_count: ");
    argz_n=argz_count(argz,argz_len); 
    printf(" %d\n",argz_n);
 
    printf("2.3 argz_add ");tmp=argz_len;
    //printf(" %d\n",argz_len);
    argz_add (&argz,&argz_len,"its_str");
    argz_print(argz,argz_len);  
    printf(" %d\n",argz_len); //
 
    number=5;
    printf("2.4 argz_delete \n");
    argz_delete (&argz,&argz_len,number);
    printf(" element %d  was deleted \n",number);
    argz_print(argz,argz_len);  
    printf(" %d\n",argz_len); 
 
    argz_insert (&argz,&argz_len,6,"past_me"); //
    printf("2.5 argz_insert \n");
    argz_print(argz,argz_len);
    printf(" %d\n",argz_len); 
 
    printf("2.6 argz_next \n");
    p=argz_next(argz,argz_len,0);
    if (p)
        printf("%c \n\n",*p);
    else printf("error\n\n");
       
    printf("2.7 argz_replace \n");
    number=4;
    argz_replace(&argz,&argz_len,"ooo","new_str");
    argz_print(argz,argz_len);
    /*printf(" %d\n",argz_len); */
    getch();
}
[COLOR="Red"][SIZE="5"]argz.h[/SIZE][/COLOR]
#ifndef _ARGZ_H
#define _ARGZ_H
#include <stddef.h> // for  size_t
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
typedef enum  {OK, ENOMEM} error_t;
 
error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len);//
size_t argz_count (const char *argz, size_t arg_len);                               //
error_t argz_add (char **argz, size_t *argz_len, const char *str);//
void argz_delete (char **argz, size_t *argz_len, char entry);//
error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry);
char * argz_next (char *argz, size_t argz_len, const char *entry);
error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with);
void argz_print(const char *argz, size_t argz_len);//5/8
#endif
 
 
[COLOR="Red"][SIZE="5"]argz.c[/SIZE][/COLOR]
#include "argz.h"
 
error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len)  
{   
    int i=0;
    *argz_len=strlen(string); 
    *argz=(char*)malloc(*argz_len*sizeof(char));   // інакше malloc повертає NULL
    if (*argz==NULL)
        return ENOMEM;
 
    strcpy(*argz,string);
 
    while((*argz)[i]!='\0') // ASCII: !=0
    {
        if((*argz)[i]==sep)    
            (*argz)[i]='\0';
        i++;
    }
    return OK;
}
//Returns the number of elements in the argz vector.
size_t argz_count (const char *argz, size_t arg_len)
{
    int i;
    size_t argz_n=0;
    for (i=0;i<=arg_len;i++)  
    {
        if (argz[i]=='\0')
            argz_n++;
    }
 
    return argz_n;
}
 
//The argz_add function adds the string str to the end of the argz vector // *argz, and updates *argz and *argz_len accordingly.
error_t argz_add (char **argz, size_t *argz_len, const char *str)// норм
{
    size_t add_len=*argz_len;
    *argz_len+=strlen(str)+1;
    *argz=(char*)realloc(*argz,*(argz_len)*sizeof(char));  //перераспределение блоков памяти.
    if (!*argz)
        return ENOMEM;
    strcpy((*argz+add_len),str);  //
    return OK;
}
 
void argz_delete (char **argz, size_t *argz_len, char entry)// 
{
    int i,Lpos_i=0,j,cvdl;// довж скільки видал
    char argz_elem_col=0; // номер поточного Елемента, на якому проходимо
    for(i=0;i<=*argz_len;++i)
    {
        if ((*argz)[i]==0)
        {
            ++argz_elem_col;
            if (argz_elem_col==entry)
            {
                cvdl=i-Lpos_i+1;  // різниця між і та і-попереднім
                for( i=Lpos_i , j=(cvdl+Lpos_i); i<=*argz_len ; ++i, ++j)         
                    *(*argz+i)=*(*argz+j);
                *argz_len=*argz_len-cvdl;
                *argz=(char*)realloc(*argz,*argz_len*sizeof(char));
                return;
            }
            Lpos_i=i+1; // скільки елементів розглянуто, адреса передостаннього нульового
        }
    }
    printf("No such element\n");
}
 
error_t argz_insert (char **argz, size_t *argz_len, char before, const char *entry)
{
    int i,Lpos_i=0,j,cvdl;
    char argz_elem_col=0;
    for(i=0;i<=*argz_len;++i)
    {
        if ((*argz)[i]==0)
        {
            ++argz_elem_col;
            if (argz_elem_col==before)
            {
                cvdl=*argz_len;// макс довжина попереднього
                *argz_len=*argz_len+strlen(entry)+1;
                if( (*argz=(char*)realloc(*argz,*argz_len*sizeof(char)))==NULL )
                    return ENOMEM;
                for( i=*argz_len , j=cvdl; j>=Lpos_i ; --i, --j)
                    *(*argz+i)=*(*argz+j);
                strcpy((*argz+Lpos_i),entry);
                return OK;
            }
            Lpos_i=i+1;
        }
    }
}
 
 
char * argz_next (char *argz, size_t argz_len, const char *entry)
{
    int i;
    char *pointer=argz, argz_elem_col=0;
 
    if (entry==NULL) return pointer;
 
    for(i=0;i<=argz_len;i++)
    {
        if (!argz[i])
        {
            argz_elem_col++;
            if((argz_elem_col==entry)&(i+1<argz_len))
            {
                pointer=(argz+i+1);
                return pointer;
            }
        }
    }
    return NULL;
}
 
error_t argz_replace(char **argz, size_t *argz_len, const char *str, const char *with)
{
    int i,Lpos_i,j,cvdl,len_str,len_with;
    for(i=0;i!=*argz_len;i+=(strlen(*argz+i)+1))
        if (!strcmp(*argz+i,str))
            if((len_str=strlen(str))<(len_with=strlen(with)))
            {
                cvdl=*argz_len;
                *argz_len=*argz_len+len_with-len_str;
                if( (*argz=(char*)realloc(*argz,*argz_len*sizeof(char)))==NULL )
                    return ENOMEM;
                i+=len_str;
                for( Lpos_i=*argz_len , j=cvdl; j>=i ; --Lpos_i, --j)
                    *(*argz+Lpos_i)=*(*argz+j);
                i-=len_str;
                strcpy((*argz+i),with);
                return OK;
            }
            else if(len_str>len_with)
            {
                for( Lpos_i=i+len_str, j=i+len_with; j<=*argz_len ; ++Lpos_i, ++j)
                    *(*argz+Lpos_i)=*(*argz+j);
                *argz_len=*argz_len+len_with-len_str;
                if( (*argz=(char*)realloc(*argz,*argz_len*sizeof(char)))==NULL )
                    return ENOMEM;
                strcpy((*argz+i),with);
                return OK;
            }
            else 
            {
                strcpy((*argz+i),with);
                return OK;
            }
    printf("Sorry, you wrong\n");
    return OK;
}
 
void argz_print(const char *argz, size_t argz_len)
{
    int i,argz_num=0,count=1;
    printf("\n argz[%d]=",count);
    for(i=0;i<argz_len;i++)
        if ((argz[i]=='\0')&(i<argz_len-1))
            {
                count++;
                printf("\n argz[%d]=",count);
            }
        else
        printf("%c",argz[i]);
        printf("\n\n");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2015, 16:41
Ответы с готовыми решениями:

Переделать код С++ (Visual Studio 2008)
Составить программу решения задачи вычисления значения функции с использованием сложной структуры...

Переделать код С++ (Visual Studio 2008)
Составить программу решения задачи вычисления значения функции с использованием сложной структуры...

Переделать код для Visual Studio 2008 c++
Нам задали лаб раб, я делал как консольное приложение, все сделал, а оказалось что надо делать...

Переделать код С++ под Visual Stidio (2008)
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; int main () { double x = -1, dx...

9
21 / 21 / 7
Регистрация: 16.09.2009
Сообщений: 111
04.01.2015, 18:48 2
Лучший ответ Сообщение было отмечено Бод как решение

Решение

Если код без ошибок, то он будет под любой VS работать. Достаточно создать новый проект, добавить в него пару файлов и скопипастить код в эти файлики. Сохранить и можно копилировать.
Чтобы перенести проект с более старой студии в более новую, достаточно открыть проект в более новой студии, и она сама предложет его "переделать".
1
Заблокирован
04.01.2015, 18:48 3
Цитата Сообщение от Бод Посмотреть сообщение
C++
1
#include "argz.h"
И что там?
0
lss
936 / 864 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 19:10 4
Лучший ответ Сообщение было отмечено Бод как решение

Решение

Цитата Сообщение от IrineK Посмотреть сообщение
И что там?
В тексте кода есть содержимое.
Цитата Сообщение от Бод Посмотреть сообщение
Как переделать код под visual studio 2013
Сделать расширения, у файлов исходного кода, .cpp, в argz.h добавить:#include <conio.h>, в argz.cpp, после всех инклудов, добавить: #pragma warning(disable : 4996), и исправить функцию error_t argz_insert(char **argz, size_t *argz_len, char before, const char *entry). С третьим параметром там непонятно: стоит char - передаётся int.
1
0 / 0 / 1
Регистрация: 21.11.2013
Сообщений: 50
04.01.2015, 19:20  [ТС] 5
вы запускали на 12 студии?
0
Модератор
Эксперт С++
11327 / 9300 / 5582
Регистрация: 18.12.2011
Сообщений: 24,812
04.01.2015, 19:50 6
Лучший ответ Сообщение было отмечено Бод как решение

Решение

Вот такой код компилируется даже в VS2008.
Обратите внимаеие на строки 16, 171, 179 помеченные "!!!!!!!!!!!!!!!!!!!!!!!!!!"
Здесь были явные ошибки.
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#include <stddef.h> // for  size_t
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#pragma warning(disable:4996) //  getch,strcpy
#pragma warning(disable:4018;disable:4389) //  несоответствие типов со знаком и без знака
#pragma warning(disable:4189) //  локальная переменная инициализирована, но не использована
#pragma warning(disable:4101) //  неиспользованная локальная переменная
typedef enum  {OK, ENOMEM} error_t;
 
error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len);//
size_t argz_count (const char *argz, size_t arg_len);                               //
error_t argz_add (char **argz, size_t *argz_len, const char *str);//
void argz_delete (char **argz, size_t *argz_len, char entry);//
error_t argz_insert (char **argz, size_t *argz_len, char before, const char *entry);  //!!!!!!!!!!!
char * argz_next (char *argz, size_t argz_len, const char *entry);
error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with);
void argz_print(const char *argz, size_t argz_len);//5/8
 
int main()
{
    char* argz,str;
    char *const st0 = "qqq:rrrr:uu:ooo:p:wwww:888",number,*p,*const str0="6";
    size_t argz_len,argz_n,tmp;
 
    char  *const sttt = "bla bla bla";
    char N = 3, K = 4;
 
    //int x, *p, **q;
    /*
    x = 10;
    p = &x;
    if p==10
    q = &p;*/
    printf(" %s\n",st0);
    printf("2.1 argz_create_sep:");
    argz_create_sep (st0, 58 /*ASCII for : */, &argz, &argz_len); 
    printf(" %d\n",argz_len);
    argz_print(argz,argz_len);
 
    printf("2.2 argz_count: ");
    argz_n=argz_count(argz,argz_len); 
    printf(" %d\n",argz_n);
 
    printf("2.3 argz_add ");tmp=argz_len;
    //printf(" %d\n",argz_len);
    argz_add (&argz,&argz_len,"its_str");
    argz_print(argz,argz_len);  
    printf(" %d\n",argz_len); //
 
    number=5;
    printf("2.4 argz_delete \n");
    argz_delete (&argz,&argz_len,number);
    printf(" element %d  was deleted \n",number);
    argz_print(argz,argz_len);  
    printf(" %d\n",argz_len); 
 
    argz_insert (&argz,&argz_len,6,"past_me"); //
    printf("2.5 argz_insert \n");
    argz_print(argz,argz_len);
    printf(" %d\n",argz_len); 
 
    printf("2.6 argz_next \n");
    p=argz_next(argz,argz_len,0);
    if (p)
        printf("%c \n\n",*p);
    else printf("error\n\n");
       
    printf("2.7 argz_replace \n");
    number=4;
    argz_replace(&argz,&argz_len,"ooo","new_str");
    argz_print(argz,argz_len);
    /*printf(" %d\n",argz_len); */
    getch();
}
 
 
 
error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len)  
{   
    int i=0;
    *argz_len=strlen(string); 
    *argz=(char*)malloc(*argz_len*sizeof(char));   // інакше malloc повертає NULL
    if (*argz==NULL)
        return ENOMEM;
 
    strcpy(*argz,string);
 
    while((*argz)[i]!='\0') // ASCII: !=0
    {
        if((*argz)[i]==sep)    
            (*argz)[i]='\0';
        i++;
    }
    return OK;
}
//Returns the number of elements in the argz vector.
size_t argz_count (const char *argz, size_t arg_len)
{
    int i;
    size_t argz_n=0;
    for (i=0;i<=arg_len;i++)  
    {
        if (argz[i]=='\0')
            argz_n++;
    }
 
    return argz_n;
}
 
//The argz_add function adds the string str to the end of the argz vector // *argz, and updates *argz and *argz_len accordingly.
error_t argz_add (char **argz, size_t *argz_len, const char *str)// норм
{
    size_t add_len=*argz_len;
    *argz_len+=strlen(str)+1;
    *argz=(char*)realloc(*argz,*(argz_len)*sizeof(char));  //перераспределение блоков памяти.
    if (!*argz)
        return ENOMEM;
    strcpy((*argz+add_len),str);  //
    return OK;
}
 
void argz_delete (char **argz, size_t *argz_len, char entry)// 
{
    int i,Lpos_i=0,j,cvdl;// довж скільки видал
    char argz_elem_col=0; // номер поточного Елемента, на якому проходимо
    for(i=0;i<=*argz_len;++i)
    {
        if ((*argz)[i]==0)
        {
            ++argz_elem_col;
            if (argz_elem_col==entry)
            {
                cvdl=i-Lpos_i+1;  // різниця між і та і-попереднім
                for( i=Lpos_i , j=(cvdl+Lpos_i); i<=*argz_len ; ++i, ++j)         
                    *(*argz+i)=*(*argz+j);
                *argz_len=*argz_len-cvdl;
                *argz=(char*)realloc(*argz,*argz_len*sizeof(char));
                return;
            }
            Lpos_i=i+1; // скільки елементів розглянуто, адреса передостаннього нульового
        }
    }
    printf("No such element\n");
}
 
error_t argz_insert (char **argz, size_t *argz_len, char before, const char *entry)
{
    int i,Lpos_i=0,j,cvdl;
    char argz_elem_col=0;
    for(i=0;i<=*argz_len;++i)
    {
        if ((*argz)[i]==0)
        {
            ++argz_elem_col;
            if (argz_elem_col==before)
            {
                cvdl=*argz_len;// макс довжина попереднього
                *argz_len=*argz_len+strlen(entry)+1;
                if( (*argz=(char*)realloc(*argz,*argz_len*sizeof(char)))==NULL )
                    return ENOMEM;
                for( i=*argz_len , j=cvdl; j>=Lpos_i ; --i, --j)
                    *(*argz+i)=*(*argz+j);
                strcpy((*argz+Lpos_i),entry);
                return OK;
            }
            Lpos_i=i+1;
        }
    }
    return OK;  //  !!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
 
 
char * argz_next (char *argz, size_t argz_len, const char *entry)
{
    int i;
    char *pointer=argz;
    char *argz_elem_col=NULL;   //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
    if (entry==NULL) return pointer;
 
    for(i=0;i<=argz_len;i++)
    {
        if (!argz[i])
        {
            argz_elem_col++;
            if((argz_elem_col==entry)&(i+1<argz_len))
            {
                pointer=(argz+i+1);
                return pointer;
            }
        }
    }
    return NULL;
}
 
error_t argz_replace(char **argz, size_t *argz_len, const char *str, const char *with)
{
    int i,Lpos_i,j,cvdl,len_str,len_with;
    for(i=0;i!=*argz_len;i+=(strlen(*argz+i)+1))
        if (!strcmp(*argz+i,str))
            if((len_str=strlen(str))<(len_with=strlen(with)))
            {
                cvdl=*argz_len;
                *argz_len=*argz_len+len_with-len_str;
                if( (*argz=(char*)realloc(*argz,*argz_len*sizeof(char)))==NULL )
                    return ENOMEM;
                i+=len_str;
                for( Lpos_i=*argz_len , j=cvdl; j>=i ; --Lpos_i, --j)
                    *(*argz+Lpos_i)=*(*argz+j);
                i-=len_str;
                strcpy((*argz+i),with);
                return OK;
            }
            else if(len_str>len_with)
            {
                for( Lpos_i=i+len_str, j=i+len_with; j<=*argz_len ; ++Lpos_i, ++j)
                    *(*argz+Lpos_i)=*(*argz+j);
                *argz_len=*argz_len+len_with-len_str;
                if( (*argz=(char*)realloc(*argz,*argz_len*sizeof(char)))==NULL )
                    return ENOMEM;
                strcpy((*argz+i),with);
                return OK;
            }
            else 
            {
                strcpy((*argz+i),with);
                return OK;
            }
    printf("Sorry, you wrong\n");
    return OK;
}
 
void argz_print(const char *argz, size_t argz_len)
{
    int i,argz_num=0,count=1;
    printf("\n argz[%d]=",count);
    for(i=0;i<argz_len;i++)
        if ((argz[i]=='\0')&(i<argz_len-1))
            {
                count++;
                printf("\n argz[%d]=",count);
            }
        else
        printf("%c",argz[i]);
        printf("\n\n");
}
1
lss
936 / 864 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 19:53 7
Цитата Сообщение от Бод Посмотреть сообщение
вы запускали на 12 студии?
Компилировал в 13-й.
1
0 / 0 / 1
Регистрация: 21.11.2013
Сообщений: 50
04.01.2015, 19:58  [ТС] 8
и у вас удалось запустить?
0
lss
936 / 864 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 20:05 9
Лучший ответ Сообщение было отмечено Бод как решение

Решение

С этими файлами, да. Там ещё исправления добавлены.
Вложения
Тип файла: rar Файлы.rar (3.4 Кб, 6 просмотров)
1
lss
936 / 864 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
04.01.2015, 20:07 10
...
Миниатюры
Переделать код под Visual studio, С++  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2015, 20:07

Изменить код Visual Studio под Borland C++
Исходный код: #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;fstream&gt; #include &lt;ctype.h&gt;...

Переделать код под Visual Prolog 7.5
Дана экспертная система. Код надо переделать под Visual Prolog 7.5 % Copyright implement main...

Как адаптировать код WMI под код Visual Studio 2010?
Доброе время суток всем. Подскажите пожалуйста для новичка, что бы можно было разобраться, как...

возможно ли переделать код алгоритма под Borland C переделать под Borland Delphi?
Подскажите возможно ли переделать код алгоритма под Borland C переделать под Borland Delphi? У меня...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.