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

julia9311

New Member
01.07.2012
0
0
#1
По идее эта программа должна с помощью функции 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;
}
 
R

rrrFer

Гость
#2
Код:
  FILE *f1;
f1=(fopen("text.txt","r"));
fgets(ar1,100,f1);
замени на
Код:
std::ifstream ifst("text.txt");
ifst.getline((char*)ar1, 255);
 

julia9311

New Member
01.07.2012
0
0
#3
заменила, но выдает следующие ошибки:

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> и все заработало)