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

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

Войти
Регистрация
Восстановить пароль
 
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
#1

Не работает программа - C++

12.12.2012, 23:52. Просмотров 300. Ответов 4
Метки нет (Все метки)

По идее эта программа должна с помощью функции getline() считывать строки текстового файла и проверять, является ли записанное в каждой строке выражение палиндромом. Программа выдает много ошибок, помогите разобраться, пожалуйста!)

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
#include <iostream>
#include <string>
#include <algorithm>
 
bool isPal(const std::string& s, size_t i, size_t j)
{
    if(i >= s.length() || j >= s.length()) return false;
    if(i > j) std::swap(i, j);
    return std::equal(s.begin() + i, s.begin() + j, s.rbegin() + s.length() - j - 1);
}
 
int main()
{
    std::ifstream File_input("text1.txt", std::ifstream::in);
    std::string s;
    std::cout<<"Press ENTER to continue...";
    while(File_input) 
   {
    std::cout<<s<<std::endl;
    std::cin.get();
    std::getline(File_input, s);
    size_t i, j;
    std::cout << "i and j: ";
    std::cin >> i >> j;
    std::cout << (isPal(s, i, j)? "yes" : "no" );
    }
    File_input.close();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 23:52     Не работает программа
Посмотрите здесь:

Программа при релизе не работает, а при дебаге работает - C++
#include&lt;iostream&gt;; #include &lt;iomanip&gt; #include&lt;fstream&gt; using namespace std; void printMatrix (int **a, int n, int m) // функція...

Не работает программа - C++
Здравствуйте! Начал изучать C++, IDE Microsoft Visual C++ 2008. Такая проблема: пишу код из учебника, а он не работает (именно этот, другие...

Не работает программа - C++
Что я сделал не так? При запуске получается бесконечный ввод. Если нужно, прилагаю задание как фото. Мои подпункты: I)б; II)ааа. Огромное...

не работает программа - C++
помогите пожалуйста написал программу которая считывает слова из текстового файла, сортирует их по алфавиту и записывает их в другой файл,...

не работает программа - C++
помогите написать програмку на C++,вот задание &quot;Ввести с клавиатуры, и занести в матрицу А n*m чисел, затем найти сумму всех элементов...

не работает программа - C++
вот условие: Даны действительные числа x,a , натуральное число n. Вычислить: ((...((x+a)^2+a)^2+...+a)^2+a {n скобок} {^2-квадрат} ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
13.12.2012, 00:05     Не работает программа #2
А кто будет подключать #include <fstream> ???

Добавлено через 4 минуты
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
#include <iostream>
#include <string>
#include <algorithm>
#include <fstream>
 
bool isPal(const std::string& s, size_t i, size_t j)
{
    if(i >= s.length() || j >= s.length()) return false;
    if(i > j) std::swap(i, j);
    return std::equal(s.begin() + i, s.begin() + j, s.rbegin() + s.length() - j - 1);
}
 
int main()
{
    std::ifstream File_input("text1.txt", std::ifstream::in);
    std::string s;
    std::cout<<"Press ENTER to continue...";
    while(File_input) 
   {
    std::cout<<s<<std::endl;
    std::cin.get();
    std::getline(File_input, s);
    size_t i, j;
    std::cout << "i and j: ";
    std::cin >> i >> j;
    std::cout << (isPal(s, i, j)? "yes" : "no" );
    }
    File_input.close();
    return 0;
}
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
13.12.2012, 22:52  [ТС]     Не работает программа #3
sovaz1997, спасибо, программа начала работать, но выдает что-то не то, что нужно... получается, отдельно ситывается содержимое файла и отдельно вводится строка, в которой нужно найти палиндром) как сделать так, чтобы именно строки текстового файла проверялись, являются они палиндромами или нет?)

Добавлено через 22 часа 14 минут
Вот попробовала немного по-другому сделать, но выдает ошибку


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstring>
#include <cstring>
int main()
{
    string str[260];
    ifstream fin("text1.txt"); 
    fin.getline(str, 260);
    if (!fin.is_open())  
    string::size_type ends=str.size();
    char* q = new char[ends];
    strcpy(q,str.c_str());
    bool key=0;
    for(string::size_type k=0;k!=(ends/2);++k){if(q[k]!=q[ends-1-k])key=1;}
    cout<<(key?"ne palindrom":"palindrom")<<endl;
    fin.close();
    system ("pause");
    return 0;
    }
c:\program files\microsoft visual studio\myprojects\1234567897654321\1234567898765432.cpp(2) : fatal error C1083: Cannot open include file: 'fstring': No such file or directory
Wolkodav
602 / 455 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
13.12.2012, 22:53     Не работает программа #4
что такое fstring? библиотека, я о таких не слышал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 00:03     Не работает программа
Еще ссылки по теме:

Не работает программа - C++
Здравствуйте. Пытаюсь сделать программу для сложения матриц. Программа компилируется без ошибок, но работает только при значениях 1 1. Что...

Не работает программа - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char s; /* буфер...

программа не работает =( - C++
помогите плиз, почему эта программа не работает? c++ писал в codeblocks, написано что ошибка в строке с else извините если вопрос...

не работает программа - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { int n,l,k; float s,eps,an,x; printf(&quot;Vvedite...


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

Или воспользуйтесь поиском по форуму:
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
14.12.2012, 00:03  [ТС]     Не работает программа #5
С программой разобралась) но как теперь сделать, чтобы строки считывались именно с помощью getline()?

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
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std; 
int main()
{   
   int n,j,f,k;
   char ar1[100];
   char ar2[100];
   FILE *f1;
   f1=(fopen("text.txt","r"));
   fgets(ar1,100,f1);              
   n=strlen(ar1);   
   j=0; f=0; k=0;   
   while(k<n)               
   {
       if(ar1[k]==' ')       
   {
   for(int j=k; j<n; j++) 
   ar1[j]=ar1[j+1];
   n--;
   k--;
   }                              
   k++;
   }
   for(int i=n-1; i>=0; i--)               
   {
   for(j=f; j<n; j++)
   {
    ar2[j]=ar1[i];
       }
            j=0;
           f++;
              }
            int p;                                  
                p=strncmp(ar1,ar2,n); 
         if(p==0) 
        cout << "Eto polindrom\n\n"; 
          else 
            cout << "Eto ne polindrom\n\n";
 
 
return 0;
}
Yandex
Объявления
14.12.2012, 00:03     Не работает программа
Ответ Создать тему
Опции темы

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