Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 5
1

Неработает ввод MinGW Win10 x64

22.11.2015, 01:07. Показов 582. Ответов 1
Метки нет (Все метки)

Доброе время суток уважаемые форумчане!
У меня ОС: Windows 10 x64
Учусь программировать на Си
В качестве компилятора выбрал порт gcc под win, а именно MinGW
И вот какая у меня проблема : у меня совершенно отказывается работать ввод и вообще какие либо численно\буквенные значения в написанных программах. Проще объяснить на примере:
по порядку: 1. Пишу программу, пусть даже самую простую ( код приведу ниже).
2. Компилирую следующей строкой : gcc -Wall -pedantic -std=c99 -m32 -o file.exe file.c
3. На выходе вместо любых присвоенных числовых значений (int, short, double ...) получаю 0, для типов с плавающей точкой 0,0000 соответственно. Вместо родных русских буковок разнообразная краказябра...
Касается эта проблема не только ввода, но и непосредственного присваивания внутри кода программы.
Ниже наглядная картиночка того, что получаю на выходе :

Неработает ввод MinGW Win10 x64


Прошу вас, помогите разобраться с проблемой и если не затруднит, без фраз типа : "Переезжай на линукс" , "На винде не пишут" и т.п.
Заранее большое спасибо!

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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
 
typedef struct point{
  double x;
  double y;
  struct point* prev;
  struct point* next;
} point ;
 
typedef struct{
  int size;
  point* begin;
  point* end;
} l2 ;
 
l2* l2_initialization(){
  l2* l = (l2*) malloc(sizeof(l2));
  if(l != NULL){
    l -> size = 0;
    l -> begin = NULL;
    l -> end = NULL;
  }
  return l;
}
 
void point_print(point* p){
  if(p -> next != NULL){
    printf("(%lf, %lf)  <-> ", p -> x, p -> y);
  } else {
    printf("(%lf, %lf) \n", p -> x, p -> y);
  }
}
 
void l2_print(l2* l){
  point* t;
  for(t = l -> begin; t != NULL; t = t -> next){
    point_print(t);
  }
}
 
void l2_add_begin(l2* l, point* p){
  if(l -> begin != NULL){
    p -> next = l -> begin;
    l -> begin -> prev = p;
  }
  if(l -> end == NULL){
    l -> end = p;
  }
  l -> begin = p;
  l -> size ++;
}
 
void l2_add_end(l2* l, point* p){
  if(l -> end != NULL){
    p -> prev = l -> end;
    l -> end -> next = p;
  }
  if(l -> begin == NULL){
    l -> begin = p;
  }
  l -> end = p;
  l -> size ++;
}
 
void l2_delete_begin(l2* l){
  if(l -> begin == l -> end){
    l -> end = NULL;
  }
  if(l -> begin != NULL){
    point* p = l -> begin;
    l -> begin = p -> next;
    if(l -> begin  != NULL){
      l -> begin -> prev = NULL;
    }
    free(p);
    l -> size --;
  }
}
 
void l2_delete_end(l2* l){
  if(l -> end == l -> begin){
    l -> begin = NULL;
  }
  if(l -> end != NULL){
    point* p = l -> end;
    l -> end = p -> prev;
    if(l -> end != NULL){
      l -> end -> next = NULL;
    }
    free(p);
    l -> size --;
  }
}
 
point* point_get(int x, int y){
  point *p = (point*) malloc(sizeof(point));
  if(p != NULL){
    p -> x = x;
    p -> y = y;
    p -> prev = NULL;
    p -> next = NULL;
    return p;
  } else {printf("Malloc error");}
  return 0;
}
 
void l2_free(l2* l){
  point* p = l -> begin;
  for(point* pn = p ; pn != NULL; p = pn){
    pn = p -> next;
    free(p);
  }
  free(l);
}
 
void l2_delete_index(l2* l, int index){
  point* p = l -> begin;
 
  for(int i = index; i >1; i --){
    if(p -> next == NULL){
      printf("Index error, there is no element at index %d\n", index);
      break;
    }
    p = p -> next;
  }
 
  if(p == l -> begin){
    l -> begin = p -> next;
    p -> next -> prev = NULL;
    p -> next = NULL; }
  else if(p == l -> end) {
    l -> end = p -> prev;
    p -> prev -> next = NULL;
    p -> prev = NULL; }
  else {
    point* tmp = p -> next;
    p -> prev -> next = p -> next;
    p -> next -> prev = tmp;
    free(p);
    p = NULL;
    tmp = NULL;
  }
  l -> size --;
}
 
int main(){
  point *p1 = point_get(1, 1); point_print(p1);
  point *p2 = point_get(2, 2); point_print(p2);
  point *p3 = point_get(3, 3); point_print(p3);
  point *p4 = point_get(4, 4); point_print(p4);
  point *p5 = point_get(5, 5); point_print(p5);
  point *p6 = point_get(6, 6); point_print(p6);
  point *p7 = point_get(7, 7); point_print(p7);
  point *p8 = point_get(8, 8); point_print(p8);
  point *p9 = point_get(9, 9); point_print(p9);
  point *p10 = point_get(10, 10); point_print(p10);
  l2* l2 = l2_initialization();
  l2_add_begin(l2, p1);
  l2_add_begin(l2, p2);
  l2_add_begin(l2, p3);
  l2_add_begin(l2, p4);
  l2_add_begin(l2, p5);
  l2_add_end(l2, p6);
  l2_add_end(l2, p7);
  l2_add_end(l2, p8);
  l2_add_end(l2, p9);
  l2_add_end(l2, p10);
  l2_print(l2);
  printf("Ввидите индекс удаляемого элемента (индекс первого элеменета равен 1) : ");
  int index;
  scanf("%d", &index);
  l2_delete_index(l2, index);
  l2_print(l2);
  l2_delete_end(l2);
  l2_print(l2);
  l2_delete_end(l2);
  l2_print(l2);
  l2_delete_begin(l2);
  l2_print(l2);
  l2_delete_begin(l2);
  l2_print(l2);
  printf("\n");
  printf("Кол-во элементов в списке = %d \n", l2 -> size);
  l2_free(l2);
  l2 = NULL;
  return 0;
  system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2015, 01:07
Ответы с готовыми решениями:

Может ли MinGW x64 компилить приложения x32? Или нужно для этого отдельно ещё MinGW х32 качать?
Просто решил поиграться с CodeLite.

Неработает паскал на Windows 7 x64
Неработает паскал 7.1 на Windows 7 x64

Не загружается Win10 x64
Здравствуйте!! Случилась такая беда.. У меня на винчестере есть 2 диска, С и D. Удалил все...

MinGW не компилит x64
MinGW (не MinGWx64, а обычный) после того как я задал -m64 компилятор стал ругаться. Пишет:...

1
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 5
22.11.2015, 16:45  [ТС] 2
upp
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2015, 16:45

Win10 x64 не грузится с SSD по SATA
На новый SSD (Других дисков в системе нет) начал ставить Win 10, до первой перезагрузки все ок, а...

Обновление с Win7 x32 до Win10 x64
Недавно пришло предложение обновиться до Win10. Сейчас стоит Win7 x32 (лицензия). Можно ли как то...

Доступна не вся память. Win10, x64
Доброго времени года! Система пишет что установлено 4.00 Гб а используется 3.00 Гб. Система x64,...

Где скачать code blocks с x64-м mingw?
Где скачать code blocks с x64-м mingw? Установить его отдельно и подцепить не получается.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru