Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Natalia_R
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
1

Error C2440: =: невозможно преобразовать 'std::string' в 'double'

31.10.2014, 11:10. Просмотров 1753. Ответов 5
Метки нет (Все метки)

>c:\users\nreshetova\documents\visual studio 2008\projects\sort3d1\sort3d1\sort3d1.cpp(73) : error C2440: =: невозможно преобразовать 'std::string' в 'double'
1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен


Есть файл со строками вида INLINE : 233 XLINE : 202 668417.50000 565878.00000 995.87421
Глобальная идея: Нужно отсортировать этот файл от начала и до конца и записать новый где остаются строки с заданым XLINE, например все строки с XLINE : 202, 214, 226..... Начальный параметр и интервал прыжка задаютмя пользователем.

Может я как то криво все это реализовываю, но пока ничего умнее не придумала:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
...
double massiv_str[9]; // Массив, содержащий код и значения очередной строки в сортируемом файле  
string s;// слово в строке сортируемого файла
...
...... 
 f.open (str);//Открываем файл
    //Проверка успешности открытия файла:
  if (f.fail()) {cout<<"\n Ошибка открытия файла";
                 exit(1);
                }
 while (!f.eof())//пока не достигнут конец файла
{
f>>s; 
if (s.empty()) break;
else {
    for (int i = 0; i < 9; i++) // читаем строку из файла и записываем ее код и значения в массив massiv_str
    {
        if (s == "INLINE")  massiv_str[i] = 1;  
        else {if(s == "XNLINE") massiv_str[i] = 2;
              else {if(s == ":")massiv_str[i] = 3;
                   } 
              } massiv_str[i] = s;        // это и есть строка 73
           
        }//for
Весь текст проги наверно нет смысла, там еще глюков видимо немеряно и не факт что алгоритм верный (скорее нет чем да). Идея собственно в том, чтобы читать из исходного файла строку, формировать массив, содержащий либо код слова в строке если он стандартный, либо числовое значение. А потом если XNLINE - то, что надо выводить строку в конец другого файла беля значения из этого массива.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2014, 11:10
Ответы с готовыми решениями:

Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &'
#include &lt;iostream&gt; #include &lt;stack&gt; #include &lt;sstream&gt; #include &lt;string&gt; using namespace...

Error C2440: <function-style-cast>: невозможно преобразовать "unsigned int" в "std::bitset<_Bits>"
С++ Не работает программа! Задание было такое: напишите программу invert(p,x,n), возвращающую...

Error C2440: инициализация: невозможно преобразовать "std::istream" в "bool"
Почему я могу написать if (cin); или bool f = !!cin; Но не могу написать так?

C2440 "Невозможно преобразовать double в double"
// ConsoleApplication3.cpp: определяет точку входа для консольного приложения. // #include...

выдаёт error C2440: =: невозможно преобразовать 'int' в 'int [100]
Ввести информацию об абонентах телефонной станции: фамилия, телефон, улица. Распечатать список...

5
Ilot
Эксперт С++
1854 / 1207 / 347
Регистрация: 16.05.2013
Сообщений: 3,190
Записей в блоге: 6
Завершенные тесты: 1
31.10.2014, 11:20 2
C++
1
massiv_str[i] = std::stod(s);
0
Natalia_R
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
31.10.2014, 11:29  [ТС] 3
1>c:\users\nreshetova\documents\visual studio 2008\projects\sort3d1\sort3d1\sort3d1.cpp(73) : error C2039: stod: не является членом "std"
1>c:\users\nreshetova\documents\visual studio 2008\projects\sort3d1\sort3d1\sort3d1.cpp(73) : error C3861: stod: идентификатор не найден

Добавлено через 3 минуты
#include <stdafx.h> видимо надо было подключить, спасибо

Добавлено через 47 секунд
ан нет...
0
Kverter
36 / 36 / 25
Регистрация: 30.10.2013
Сообщений: 211
31.10.2014, 11:41 4
Natalia_R,
#include <iostream>
#include <string>
подключены?
0
castaway
Эксперт С++
4948 / 3054 / 456
Регистрация: 10.11.2010
Сообщений: 11,149
Записей в блоге: 10
Завершенные тесты: 1
31.10.2014, 11:45 5
stod из C++11.
Тут должно сработать:
C++
1
massiv_str[i] = std::strtod( s.c_str(), NULL );
0
Natalia_R
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
31.10.2014, 11:59  [ТС] 6
C++
1
2
3
4
5
6
7
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstddef>
#include<locale.h> 
#include <windows.h>
#include <string>
castaway , спасибо. Эту строку мы одолели!
0
31.10.2014, 11:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2014, 11:59

Ошибка error C2440: инициализация: невозможно преобразовать 'int' в 'int []'
// ConsoleApplication9.cpp: определяет точку входа для консольного приложения. // #include...

Error C2440 невозможно преобразовать char в char
двунаправленный список помогите разобраться с ошибкой #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

error C2440:невозможно преобразовать 'int' в 'int []'
Собственно вот сам код, жирным выделена строка в которой Visual C++ 2008 показывает ошибку. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.