Программа почти готова, только не могу понять как быть дальше. Если первая строка начинается и заканчивается на один и тот же символ, то счётчик работает, а с остальными строками - нет. Может в цикле чтения файла ошибка?
#include "stdafx.h"
#include <iostream>
using namespace std;
void create_file(FILE* f, char* name)
{
char s[1000];
f = fopen(name, "wt");
if (f == NULL) { cout << "Cannot create file\n"; return; }
cout << "Input strings" << endl;
do
{
gets_s(s, 1000);
fputs(s, f);
fputs("\n", f);
}
while (strcmp(s, ""));
fclose(f);
}
void view_file(FILE* f, char* name)
{
char s[1000];
f = fopen(name, "rt");
if (f == NULL)
{
cout << "Cannot open file to veiw\n";
return;
}
cout << "\nView file" << endl;
while (fgets(s, 100, f))
{
s[strlen(s) - 1] = '\0';
puts(s);
}
fclose(f);
}
int Strings(FILE* f, char* name)
{
char s[1000];
int kol = 0;
f = fopen(name, "rt");
if (f == NULL)
{
cout << "Cannot open file\n";
return 0;
}
while (fgets(s, 1000, f))
{
if (s[0] == s[strlen(s) - 1])
{
kol++;
}
}
return kol;
}
int main()
{
FILE* f = NULL;
char* name = "file.txt";
create_file(f, name);
view_file(f, name);
cout << "Num of strings: " << Strings(f, name) << endl;
system("pause");
return 0;
}