Нужна Помощь В Устранении Ошибок

Тема в разделе "C/C++/C#", создана пользователем oper89, 23 май 2013.

  1. oper89

    oper89 New Member

    Регистрация:
    23 май 2013
    Сообщения:
    1
    Симпатии:
    0
    программа подгружает файл в котором несколько сотен строк с дробными числами,затем сравнивает попарно 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;
    }
     
  2. rrrFer

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

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
Загрузка...

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