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

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

Войти
Регистрация
Восстановить пароль
 
Abdula
9 / 9 / 1
Регистрация: 28.03.2012
Сообщений: 116
#1

Найти ошибку в коде - C++

29.03.2012, 06:50. Просмотров 441. Ответов 7
Метки нет (Все метки)

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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
 
using namespace std;
 
 
void main (void) {
 
WIN32_FIND_DATA FFD;
HANDLE hFind;
DWORD dwBytesRead;
 
int c;
 
char buff[3];
 
 
char uri [] = "C:\\Documents and Settings\\ВдВ\\Рабочий стол\\jobs\\cd\\*.mp3";
char uri2[] = "C:\\Documents and Settings\\ВдВ\\Рабочий стол\\jobs\\cd\\";
char path[256];
char name[256];
hFind = FindFirstFile(uri, &FFD);
 
 
 
do{ c++;
 
memset(buff,' ',sizeof(buff));
memset(path,' ',sizeof(path));
 
strcpy(path,uri2);
strcat(path, FFD.cFileName);
 
HANDLE hFile = CreateFile((LPCSTR)path,
        GENERIC_READ,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
 
ReadFile(hFile, &buff,3, &dwBytesRead, NULL);
CloseHandle(hFile);
 
cout << buff << endl;
 
 
}while(FindNextFile(hFind, &FFD));
 
cout  << c;
 
FindClose(hFind);
getch();}
вот он код, где что утекает? это для Bilder'а но и VS пытался... может кто подскажет статью какую нибудь что бы мозги вправила....((
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 06:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку в коде (C++):

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде) - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; for(int i = -21; i &lt; -99; i+=3) ...

Найти ошибку в коде - C++
Помогите пж. найти ошибку в коде. Проверка на ошибки в мат выражениях. Примеры без ошибок: 4+3+(234+3)+2 3+21 45 Примеры с...

Найти ошибку в коде - C++
У меня стоит задача, в массиве из 10 чисел, который задается двумя способами, выполнить два способа сортировки: выбором и распределением по...

Найти ошибку в коде - C++
Народ вот задача. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main(){ int sra=0,b,q; int i=0,n,arr; ...

Найти ошибку в коде - C++
В книге Страуструпа есть задание. Сначала нужно создать пустой консольный проект в Visual Studio, затем включить туда файл исходного...

Найти ошибку в коде - C++
#include&lt;iostream&gt; #include&lt;ctime&gt; using namespace std; int main(){ const int n=10; const int m=10; int A; for(int...

7
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 1
29.03.2012, 08:00 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ошибки.
Строка 16 надо
C++
1
int c=0;
Строка 32 надо
C++
1
path[0]=0;//memset(path,' ',sizeof(path));
Строка 35. Переменной FFD может ничего не присвоиться,
поэтому вставьте
C++
1
if(hFind>=0)
после строки 25.
0
Abdula
9 / 9 / 1
Регистрация: 28.03.2012
Сообщений: 116
29.03.2012, 09:01  [ТС] #3
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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
 
using namespace std;
 
 
void main (void) {
 
WIN32_FIND_DATA FFD;
HANDLE hFind;
DWORD dwBytesRead;
 
int c = 0;
 
char buff[3];
 
 
char uri [] = "C:\\Documents and Settings\\ВдВ\\Рабочий стол\\jobs\\cd\\*.mp3";
char uri2[] = "C:\\Documents and Settings\\ВдВ\\Рабочий стол\\jobs\\cd\\";
char path[256];
char name[256];
hFind = FindFirstFile(uri, &FFD);
 
if(hFind>=0)
 
 
do{ //c++;
 
memset(buff,' ',sizeof(buff));
 
path[0]=0; //memset(path,' ',sizeof(path));
 
strcpy(path,uri2);
 
if(hFind>=0) strcat(path, FFD.cFileName);
else  break;
 
HANDLE hFile = CreateFile(path,
        GENERIC_READ,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
 
ReadFile(hFile, &buff,3, &dwBytesRead, NULL);
CloseHandle(hFile);
 
cout << buff << endl;
 
 
}while(FindNextFile(hFind, &FFD));
 
cout  << c;
 
FindClose(hFind);
getch();}

29 стр. всё работает если не открыть c++! а так выводит типа:
ID3s
ID3g
ID3k
ID3u

потом писк, от куда этот писк и символ после ID3?
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.03.2012, 09:13 #4
В исходнике с первого поста нет указателей, без указателей нет динамической памяти, а статическая память утекать не умеет.
0
Abdula
9 / 9 / 1
Регистрация: 28.03.2012
Сообщений: 116
29.03.2012, 12:51  [ТС] #5
Цитата Сообщение от Abdula Посмотреть сообщение
29 стр. всё работает если не открыть c++! а так выводит типа:
ID3s
ID3g
ID3k
ID3u
потом писк, от куда этот писк и символ после ID3?
вот доктор, это уже делириум тремер (((

Добавлено через 26 минут
Пожалуйста кто знает помагите((

Добавлено через 37 минут
Кто поможет дарю трёх комнатную квартиру в центре Москвы
0
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 1
29.03.2012, 13:20 #6
cout << buff << endl;
Выводит символьную строку,
которая, как известно, должна заканчиваться нулем.
А таковой у Вас отсутствует.
Поэтому, в 17 строке сделайте
char buff[4]={0,0,0,0};
и 31 строку удалите.
А писк - возможное воспроизведение управляющего символа Bell.
1
Abdula
9 / 9 / 1
Регистрация: 28.03.2012
Сообщений: 116
29.03.2012, 13:43  [ТС] #7
спасибо большое //Странно, почему если char buff[4]={0,0,0,0}; заменить на char buff[3]={0,0,0}; не идёт? это ReadFile виновата или 3 плохое число?

Добавлено через 2 минуты
а нуль
0
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 1
29.03.2012, 14:01 #8
Вводите три символа, а четвертый остается нулем.
Получается полноценная символьная строка.
0
29.03.2012, 14:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2012, 14:01
Привет! Вот еще темы с ответами:

Найти ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int m, n, **a, i, j, s; cout&lt;&lt;&quot;vvedite kol-vo...

найти ошибку в коде - C++
Дана непустая последовательность слов (не более 50), в каждом слове не более восьми символов. Слова разделены пробелом, за последним словом...

Найти ошибку в коде - C++
помогите пожалуйста, не могу найти проблему, из-за этого дальше учить С++ не могу // my5.cpp: определяет точку входа для консольного...

Найти ошибку в коде - C++
Здравствуйте!!! помогите пожалуйста с кодом...мне нужен C++ вопрос таков...в чем я ошибся, при написании кода? )))


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

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

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