Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227

Исправить ошибку в коде для сравнения строк

08.01.2014, 15:47. Показов 2215. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
что-то не получается вот с этим:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
using namespace std;
int main ()
{
setlocale (LC_ALL,"Rus");
char s[20];
for(int i=0;i<20;i++)
cin>>s;
if (s=='Привет')
cout<<"Привет"<<endl; // тут не знаю,что сделать для задержки если нужно
return 0
}
как исправить? есть ошибка или сам ход построения кода не верен но затея всем надеюсь понятна
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2014, 15:47
Ответы с готовыми решениями:

Исправить ошибку в коде сравнения двух диапазонов
Не подскажите как исправить. Макрос сравнивает 2 диапазона, и когда находит сходство, из соседней с первым диапазоном ячейки, он берёт...

Помогите исправить ошибку сравнения строк
В общем помогите исправить ошибки и запустить программу, разобраться не могу как правильно описать: String.CompareOrdinal(IgnoreCase) ...

Исправьте ошибку в коде для сравнения файлов
@echo off setlocal enabledelayedexpansion if &quot;%~1&quot;==&quot;&quot; (echo Not specified Param1&amp; goto :eof) if &quot;%~2&quot;==&quot;&quot; (echo Not specified...

23
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
09.01.2014, 15:36  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alsav22 Посмотреть сообщение
Видимо, у меня 10-я.

Чтобы остановка в конце кода сработала (cin.get()), извлекается '\n' из потока. Можно в две строки записать:
C++
1
2
cin>>s;
cin.get();
все понятно и не знал,что так можно,думал только так cin.get()
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
09.01.2014, 16:28
Цитата Сообщение от web-magician Посмотреть сообщение
нельзя сделать это все интуитивно понятным...есть писанный код программы которая работает через консоль прописал туда к примеру название песни или с расширением для более точного поиска или просто без расширения и чтобы программа искала и выводила найденный результат на экран и еще можно чтобы записывала в файл,а в файл в свою очередь сделать перезаписывающим через ios::app и будет оставаться последний искомый файл...при запуске программы можно сделать сразу считывание из файла и вывода на экран чтобы был виден последний искомый файл. если бы я все это смог бы сделать не просил бы помощи и заранее извиняюсь за возможные глупые вопросы и пожелания так как я только новичок в этом деле.
Ну так делай. Поизучай чего-нибудь. Научись рекурсивно выводить имена файлов и папок, могу дать исходники.
0
 Аватар для web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
11.01.2014, 21:29  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Ну так делай. Поизучай чего-нибудь. Научись рекурсивно выводить имена файлов и папок, могу дать исходники.
если не затруднит дай пожалуйста.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
11.01.2014, 22:40
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
#include <windows.h>
#include <stdio.h>
 
long int rez= 0;
 
void GetFileList(LPTSTR sPath);
 
int main(){
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 
 
//Поскольку sPath и sExt и sEXT одинаковы во всех вызовах GetFileList, их можно было бы сделать
//глобальными, но я так оставил. 
//Сюда пишешь папку, в которой надо вести поиск
        char sPath[MAX_PATH]= "E:\\vso_moio";
 
 
 
//Обратить  внимание на размер массива!
        GetFileList(sPath);
//Портит всё дело: Если перенаправлять в файл с консоли, то полуачается, что в консол ведут 
//запись два разных потока- тот,который нужент и этот,который записывает "Для продлжения нажмите любую
//клавишу" и эта надпись вклинивается в серёдку и портит всё дело
      printf("rez= %d\n", rez);
  //system ("PAUSE");
      getchar ();
}
 
void GetFileList(LPTSTR sPath) {
 
 WIN32_FIND_DATA pFILEDATA;
 
 HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA);
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!Необходимо именно здесь прописывать длину пути!!!!!!!!!!!!!!!!!!!!!!!
// sPath[strlen(sPath) - strlen(strstr(sPath,"*"))] = '\0';
//Если пропишем после if (как предлагает Юра), то тогда, если вдруг натыкаемся на системную директорию
// или файл, то FindFirstFile возвращает -1. Следовательно, всё, что выплнняется по условию
//(hFile!=INVALID_HANDLE_VALUE) не выолнится и в частности, не будет поставлен конец строки!
//А это значит, что по выходу из  рекурсивной функции GetFileList в том месте, где мы восстанавливаем
//Длину, она будет восстановлена неправильно
 
//22.11.12 00:02
//Да и вообще нахрен оно надо, лучше так записать:
//по-любому звёздочка есть в строке, мы же делали конкантекацию строк выше!     
 *(strstr(sPath,"*.*"))= '\0';
 
 if (hFile!=INVALID_HANDLE_VALUE)    {
  char * chBuf;
  //sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
  do {
   //Пропускаем . и ..
   if (strlen(pFILEDATA.cFileName) == 1 &&  strchr(pFILEDATA.cFileName,'.') !=NULL)
    if (FindNextFile(hFile,&pFILEDATA) == 0)
      break;
   if (strlen(pFILEDATA.cFileName) == 2 && strstr(pFILEDATA.cFileName,"..") !=NULL)
    if(FindNextFile(hFile,&pFILEDATA) == 0)
      break;
     //Если нашли директорию, запускаем поиск в ней рекурсивный поиск
   if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
     
 
 
     strcat(sPath,pFILEDATA.cFileName);
     strcat(sPath, "\\");
     //CharToOem(sPath,sPath);
     printf("\n==%s\n",sPath);
     sPath[strlen(sPath)- 1]= '\0'; 
     rez++;
     //OemToChar(sPath,sPath);
 
     GetFileList(sPath);
 
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!оБЯЗАТЕЛЬН востанавливать дллину пути................................     
     sPath[strlen(sPath) - strlen(pFILEDATA.cFileName)- 1] = '\0';
 
   }
   else {
      //Если не будем использовать CharToOem() то на экране русский шрифт каракулями выйдет
      //CharToOem(sPath,sPath);
      printf("%s",sPath);
      //OemToChar(sPath,sPath);
      //CharToOem(pFILEDATA.cFileName,pFILEDATA.cFileName);
      printf("%s\n",pFILEDATA.cFileName);
      rez++;
   }
  }
  while (FindNextFile(hFile,&pFILEDATA));
  FindClose (hFile);
 }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2014, 22:40

В коде выдает ошибку на 15 строчке. Мне надо исправить эту ошибку
procedure TForm1.BOkClick(Sender: TObject); var e1, e2: double; begin Label1.Caption := ''; if not...

Описание класса для определения одномерных массивов строк. Исправить ошибку
Программа иногда работает правильно а иногда вылетает с ошибкой Unhandled exception at 0x009C12F8 in HelloWorld.exe: 0xC0000005: Access...

Как исправить исправить ошибку в коде
Здравствуйте,помогите пожалуйста исправить ошибку в коде.using System; using System.Threading; namespace Gorokhov_2 { class...

Исправить ошибку в коде
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include...

Исправить ошибку в коде
Здравствуйте. Написала на языке с# программу , почему то компилятор ругается. Говорит не хватает правой скобки точки с запятой. Double...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru