Считывание Строк С Помощью Getline()

Тема в разделе "C/C++/C#", создана пользователем julia9311, 17 дек 2012.

  1. julia9311

    julia9311 New Member

    Регистрация:
    1 июл 2012
    Сообщения:
    0
    Симпатии:
    0
    По идее эта программа должна с помощью функции getline() считывать строки текстового файла и проверять, является ли записанное в каждой строке выражение палиндромом. Программа работает, но как теперь сделать, чтобы строки считывались именно с помощью getline()?

    Код (C++):
    #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;
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Код (Text):
      FILE *f1;
    f1=(fopen("text.txt","r"));
    fgets(ar1,100,f1);
    замени на
    Код (Text):
    std::ifstream ifst("text.txt");
    ifst.getline((char*)ar1, 255);
     
  3. julia9311

    julia9311 New Member

    Регистрация:
    1 июл 2012
    Сообщения:
    0
    Симпатии:
    0
    заменила, но выдает следующие ошибки:

    C:\Program Files\Microsoft Visual Studio\MyProjects\задача 36\задача 36.cpp(11) : error C2079: 'ifst' uses undefined class 'basic_ifstream<char,struct std::char_traits<char> >'
    C:\Program Files\Microsoft Visual Studio\MyProjects\задача 36\задача 36.cpp(11) : error C2440: 'initializing' : cannot convert from 'char [9]' to 'int'
    This conversion requires a reinterpret_cast, a C-style cast or function-style cast
    C:\Program Files\Microsoft Visual Studio\MyProjects\задача 36\задача 36.cpp(12) : error C2228: left of '.getline' must have class/struct/union type


    Добавлено: добавила #include <fstream> и все заработало)
     
Загрузка...

Поделиться этой страницей