У меня ошибка, как исправить c++?
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
int menu()
{
system("cls");
int variant;
cout << "Выберите вариант\n" << endl;
cout << "1. Создать файл\n" << endl;
cout << "2. Прочитать файл\n" << endl;
cout << "0. Свалить\n" << endl;
cout << ">>> ";
cin >> variant;
return variant;
}
void creafile()
{
char buff[200];
ofstream fout("text.txt", ios_base::out | ios_base::trunc);
fout << "arfgdsdujdsvbtyjunesh";// это текст вот.
fout.close();
}
void readfile()
{
ifstream f("text.txt", ios_base::in);
string s;
int i = 0;
char c;
cout << "Какой символ?";
cin >> c;
while (f){
f >> s;
i += (s[s.length()] == c) ? 1 : 0;
}
cout << "Таких строк: " << i;
}
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "Rus");
for (int variant = menu(); variant; variant = menu())
switch (variant) {
case 1:
cout << "Приступим к созданию, для начала" << endl;
creafile();
break;
case 2:
readfile();
break;
}
return 0;
}
error C2679: бинарный ">>": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)
Источник: Stack Overflow на русском