O
oper89
программа подгружает файл в котором несколько сотен строк с дробными числами,затем сравнивает попарно 2 и 1, 3 и 2 и т.д. значения строк. если 2 больше 1,то 1й счетчик "а" увеличивается на 1.при достижении а=2, значение 2 счетчика "b" увеличивается на 1,а значение "а" обнуляется.
при запуске ошибки конвертации string в double:
111/main.cpp|24|ошибка: cannot convert «std::string {aka std::basic_string<char>}» to «const char*» for argument «1» to «double atof(const char*)»|
111/main.cpp|28|ошибка: cannot convert «std::string {aka std::basic_string<char>}» to «const char*» for argument «1» to «double atof(const char*)»|
#include <string>
#include <fstream>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
string line; //Текущая строка из файла
int nLines = 1;//Думаю ясно что эта переменная будет хранить
ifstream ifs("input.txt");
if(!ifs.is_open()) {
cout<<"Ошибка открытия файла input.txt\n";
return 0;
}
cout << "Число строк : "<<nLines<<endl;
cout<<"Для продолжения работы программы нажмите любую клавишу...";
cin.get();
int i = 0;
int a = 0;
int b = 0;
double x1, x2;
getline(ifs, line);
x1 = atof (line);
while(getline(ifs,line))
{
nLines++;
x2 = atof(line);
if(x2 > x1){
a++;
} if(a==2){
b++;a = 0;
cout<<"Точка пика : "<<i<<endl;
}
x1 = x2;
}
ifs.close();
cout << "Число строк : "<<nLines<<endl;
cout << "Всего пиков: "<<b<<endl;
return 0;
}
при запуске ошибки конвертации string в double:
111/main.cpp|24|ошибка: cannot convert «std::string {aka std::basic_string<char>}» to «const char*» for argument «1» to «double atof(const char*)»|
111/main.cpp|28|ошибка: cannot convert «std::string {aka std::basic_string<char>}» to «const char*» for argument «1» to «double atof(const char*)»|
#include <string>
#include <fstream>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
string line; //Текущая строка из файла
int nLines = 1;//Думаю ясно что эта переменная будет хранить
ifstream ifs("input.txt");
if(!ifs.is_open()) {
cout<<"Ошибка открытия файла input.txt\n";
return 0;
}
cout << "Число строк : "<<nLines<<endl;
cout<<"Для продолжения работы программы нажмите любую клавишу...";
cin.get();
int i = 0;
int a = 0;
int b = 0;
double x1, x2;
getline(ifs, line);
x1 = atof (line);
while(getline(ifs,line))
{
nLines++;
x2 = atof(line);
if(x2 > x1){
a++;
} if(a==2){
b++;a = 0;
cout<<"Точка пика : "<<i<<endl;
}
x1 = x2;
}
ifs.close();
cout << "Число строк : "<<nLines<<endl;
cout << "Всего пиков: "<<b<<endl;
return 0;
}