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

файлы, чтение запись идет не так как нужно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка: левый операнд должен быть левосторонним значением http://www.cyberforum.ru/cpp-beginners/thread1053933.html
Ребят, проблема такая: редактирую код быстрой сортировки, выдает ошибку (см. выше), подскажите пожалуйста в чем может быть проблема int Quick() { for(int stolbec=0;stolbec!=sizeY ;stolbec++) { qsort(stolbec,0,sizeX - 1 ); } return 0; } void qsort( int stolbec, int start, int end )
C++ Вывести на экран слова, в которых все символы повторяющиеся Дана последовательность символов, состоящая из слов. Вывести на экран слова, в которых все символы повторяющиеся, или сообщение «Нет», если требуемых слов нет http://www.cyberforum.ru/cpp-beginners/thread1053927.html
Вроде простая задача и в то же время сложная C++
Вот условие: написать программу позволяющую выводить числа начиная от 0.000000001 до 10000000000 с некоторым шагом. Как это можно сделать? Что-то я уже часа 2 сижу и не как не пойму( Добавлено через 28 минут upp
C++ Нарушение прав доступа при чтении
// ConsoleApplication6.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "stdafx.h" #include <Windows.h> #include <iostream> #include <stdlib.h>
C++ Не работает программа http://www.cyberforum.ru/cpp-beginners/thread1053881.html
Здраствуйте, помогите пожалуйста, есть матрица с, она вводится в самом начале в функции, потом она должна вызываться, пробовал делать через матрицу а, что-то не получается. #include <iostream> #include <iomanip> using namespace std; void matr(float c) { int n, m;
C++ Классы. Шаблоны. Создать шаблон, наследование шаблона с параметром, наследование от параметра Задание было: 1) создать шаблон 2) сделать наследование шаблона с параметром 3) сделать наследование от параметра Первые два сделала с последним проблема, нигде не могу найти про это информации, что-то откапала, но не работает ПОМОГИТЕ!!! :cry: #include "stdafx.h" #include <iostream> подробнее

Показать сообщение отдельно
Крюгер
 Аватар для Крюгер
0 / 60 / 3
Регистрация: 16.11.2012
Сообщений: 409
Записей в блоге: 3
24.12.2013, 16:15     файлы, чтение запись идет не так как нужно
и так, мне очень нужна ваша помощь! в кратце эта программа считывает файл в буфер, потом сравнивает 1 значение из буфера, и если оно подходит изменяет на нужное.
и вобщем всё бы хорошо, даже справляется с поставленой задачей но есть одно НО.

если я выбираю пункт заменить допустим все "0" в 11 столбце, то всё отлично заменяется,
но если я изменяю другое число, например 5, эм... на 32, то на выходе я получаю кашу.
жуткого качества.

в чем проблема -хз, вроде бы всё правильно.

(код в плохом виде , т.к на скорую руку)

что считывается:
Код
wpn_revolver.dds
0 -0.003498 0.041957 0.022500 0.000000 -1.000000 0.000000 0.535665 -0.301831 1 5 1.000000
0 0.002402 0.041957 0.022500 0.000000 -1.000000 0.000000 0.568365 -0.204401 1 5 1.000000
0 -0.000198 0.041957 0.022800 0.000000 -1.000000 0.000000 0.535665 -0.251108 1 5 1.000000
wpn_revolver.dds
0 -0.004598 0.041957 0.021400 0.000000 -1.000000 0.000000 0.568365 -0.348539 1 0 1.000000
0 -0.006098 0.041957 0.019500 0.000000 -1.000000 0.000000 0.628865 -0.384559 1 0 1.000000
0 -0.003498 0.041957 0.022500 0.000000 -1.000000 0.000000 0.535665 -0.301831 1 0 1.000000
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
#include <iostream>
#include <windows.h>
 
#include <fstream>
#include <string>
#include <clocale>
#include <cstring>
#include <stdio.h>
 
using namespace std;
 
struct table
{
int dum;
float x,y,z;
float nx,ny,nz;
float u,v;
int dumm;
int idbone;
float weight;
};
 
 
int main()
{setlocale(LC_CTYPE, "Russian");
ifstream fin;
ofstream fout;
const int szbuf = 256;
const string txn = "wpn_revolver.dds";
char lbufer[szbuf];
char obufer[szbuf];
string wbufer;
int cline = 0;
table *ptable;
table *prtable;
int incr = 0;
int searchv;
int variablev;
 
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD cor;
 cor.X = 0;
 cor.Y = 20;
 
 
fin.open("input.smd",std::ios::in);
if (!fin.is_open()){cout << "не удалось открыть файл.\n";}
while (!fin.eof())
{char c;
fin.get(c);
if (c == '\n') cline++;}
cout <<"строк в файле:"<<cline<<"\n";
fin.close();
 
fin.open("input.smd",std::ios::in);
ptable = new table[cline]; //---------------буфер структурированного файла
prtable = new table[cline]; //--------------буфер для записи корректированых данных
 
while (!fin.eof()){
 
 fin.getline(lbufer, szbuf);
 //wbufer=lbufer;
 
 //if (wbufer==txn){continue;
 //}else{
 sscanf( &lbufer[0], "%d %f %f %f %f %f %f %f %f %d %d %f" , &ptable[incr].dum, &ptable[incr].x, &ptable[incr].y,
 &ptable[incr].z, &ptable[incr].nx, &ptable[incr].ny, &ptable[incr].nz, &ptable[incr].u, &ptable[incr].v,
 &ptable[incr].dumm, &ptable[incr].idbone, &ptable[incr].weight);
 
incr++;
/*
printf("%d %f %f %f %f %f %f %f %f %d %d %f" , ptable[1].dum, ptable[1].x, ptable[1].y,
 ptable[1].z, ptable[1].nx, ptable[1].ny, ptable[1].nz, ptable[1].u, ptable[1].v,
 ptable[1].dumm, ptable[1].idbone, ptable[1].weight);*/
 SetConsoleCursorPosition(hConsole,cor);
cout <<"read:"<<(float)incr/cline*100<<"% \b\n";
if (incr==cline){goto S;}
 }//}
 
S:{
 
 cout << "введите значение которое следует заменить:\n";
 cin >> searchv;
 cout << "введите значение на которое следует изменять:\n";
 cin>> variablev;
 
 cout <<"замена выполняется...\n";
 for(int q = 0; q<=cline; q++){
prtable[q].dum = ptable[q].dum;
prtable[q].x = ptable[q].x;
prtable[q].y = ptable[q].y;
prtable[q].z = ptable[q].z;
prtable[q].nx = ptable[q].nx;
prtable[q].ny = ptable[q].ny;
prtable[q].nz = ptable[q].nz;
prtable[q].u = ptable[q].u;
prtable[q].v = ptable[q].v;
prtable[q].dumm = ptable[q].dumm;
if(ptable[q].idbone==searchv){ prtable[q].idbone=0; prtable[q].idbone=variablev;}else{
 prtable[q].idbone=ptable[q].idbone;}
//prtable[q].idbone = ptable[q].idbone;
prtable[q].weight = ptable[q].weight;
 
SetConsoleCursorPosition(hConsole,cor);
cout <<"analise:"<<(float)q/cline*100<<"% \b\n";
 
if (q==cline){goto R;}}}
R:{
cout <<"замена успешно выполнена!\n";
cout <<"идет запись результатов...\n";
 
fout.open("output.smd",ios::out);
 
for(int w = 0; w<=cline; w++){
if(prtable[w].dum+prtable[w].x+prtable[w].y+
 prtable[w].z+prtable[w].nx+prtable[w].ny+prtable[w].nz+prtable[w].u+prtable[w].v,
 prtable[w].dumm+prtable[w].idbone+prtable[w].weight==variablev){
 sprintf(&obufer[0],"%s",txn.c_str());
 }else{
sprintf(&obufer[0],"%d %f %f %f %f %f %f %f %f %d %d %f",prtable[w].dum, prtable[w].x, prtable[w].y,
 prtable[w].z, prtable[w].nx, prtable[w].ny, prtable[w].nz, prtable[w].u, prtable[w].v,
 prtable[w].dumm, prtable[w].idbone, prtable[w].weight);}
 
fout << &obufer[0]<<endl;
SetConsoleCursorPosition(hConsole,cor);
cout <<"write:"<<(float)w/cline*100<<"% \b\n";
 
  }
cout <<"запись завершена\n";
fout.close();
delete [] ptable;
delete [] prtable;}
return 0;}

тестил на входе всё норм считывается, значит где то на выходе беда,
видимо условие не срабатывает :
C++
1
2
3
4
5
if(prtable[w].dum+prtable[w].x+prtable[w].y+
 prtable[w].z+prtable[w].nx+prtable[w].ny+prtable[w].nz+prtable[w].u+prtable[w].v,
 prtable[w].dumm+prtable[w].idbone+prtable[w].weight==variablev){
 sprintf(&obufer[0],"%s",txn.c_str());
 }
хотя так то должно.
оно задумано чтобы срабатывало когда сумма всех значение полей равна заменяемому,
т.к при считывании вот этого ->wpn_revolver.dds
функция по всем параметрам вернет 0, то есть строка из 12 нулей,
а при поиске и замене их сумма станет равной заменяемому значению

Добавлено через 36 минут
да блин, шо в тему никто даже не заходит. я понимаю , что конечно многа букафф, но блин прога очень нужна, помогите кто может чтоль.

Добавлено через 31 минуту
такие все,отзывчивые... еще 100 лет, и на мою скромную тему полюбому ответят!

Добавлено через 1 час 0 минут
эту статью посмотрели уже ~40 человек...
похоже она получилась заведомо мертвой, так как многа букафф...

Добавлено через 14 часов 12 минут
спустя день никто не решился отписатьса по програмке

Добавлено через 2 часа 7 минут
почему происходит эта проблема я выяснил, незнаю даже как сразу этого незаметил, суть её заключается в том что при поиске нулевых значений нули естессно находятся, а потому проверка (второй фрагмент кода)
выполняется, в иных случаях проверка не срабатывает.

Всем спасибо за помощь!
осталось решить только как выйти из этой ситуации и всё ОК! да да программе ЖИТЬ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru