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

Считывание string из файла - C++

14.03.2015, 09:51. Просмотров 585. Ответов 10
Метки нет (Все метки)

Есть текстовый файл. Первая строчка, в которой находится название не получается считать в string. Идущие за ним цифры считываются нормально. Подскажите, что не так делаю.

C++
1
2
3
4
    ifstream file;                                          
    file.open(Nazv.c_str());                         
    file >> Naimenovanie.c_str();
    file >> Kol_vo;

http://www.cyberforum.ru/cpp-beginners/thread1987267.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2015, 09:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Считывание string из файла (C++):

Считывание строки из бинарного файла в string
Привет всем!! Помогите новичку понять почему происходит ошибка при считывании...

Считывание файла в вектор типа string
Дело в том, что в общем то не работает по какой-то причине функция eof(); и...

Заменить считывание с клавиатуры на считывание из файла
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не...

считывание строки( библиотека string)
задача в том чтоб считать сообщение с клавиатуры полностью(русские буквы...

Считывание vector<string> - жрёт память
Делаю считывание vector&lt;string&gt; из файла. При первом запуске (программа...

10
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
14.03.2015, 09:58 #2
c_str возвращает указатель на константу. Естественно, в него ничего нельзя записать, не говоря о том, что память может быть не выделена.
std::getline
0
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,192
Завершенные тесты: 1
14.03.2015, 09:59 #3
C++
1
2
3
4
ifstream file;                                          
    file.open(Nazv.c_str());                         
    getline(file,Naimenovanie);
    file >> Kol_vo;
0
Вир
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 21
14.03.2015, 10:26  [ТС] #4
Сделал, как вы посоветовали. Выдает ошибку.
E2285 Could not find a match for 'getline<_CharT,_Traits,_Alloc>(ifstream,AnsiString)'
0
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,192
Завершенные тесты: 1
14.03.2015, 10:32 #5
А
C++
1
#include <string>
где???????????????????????
0
Вир
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 21
14.03.2015, 10:37  [ТС] #6
C++
1
#include <string.h>
Данная библиотека подключена
0
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
14.03.2015, 10:46 #7
Вир, найди 10 отличий. Или хотя бы 2:
string
string.h
0
Вир
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 21
14.03.2015, 10:48  [ТС] #8
Отличия нашёл, изменил у себя - не помогло, та же самая ошибка.
0
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
14.03.2015, 10:52 #9
Тогда полный код в студию.

Добавлено через 1 минуту
Ах, да. Почему целевая строка-то AnsiString, а не std::string?
0
Вир
0 / 0 / 0
Регистрация: 06.03.2014
Сообщений: 21
14.03.2015, 11:40  [ТС] #10
Решил проблему так:
C++
1
2
3
4
5
6
7
    string Naimenovanie;
    std: string Vspom;
    ifstream file;                                          
    file.open(Nazv.c_str());                         
    getline(file,Naimenovanie);
    Naimenovanie=Vspom.c_str();
    file >> Kol_vo;
0
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
14.03.2015, 11:46 #11
Цитата Сообщение от Вир Посмотреть сообщение
Решил проблему так:
Сначала считал значение в переменную, потом тут же снес это значение. Это явно не решение.
0
14.03.2015, 11:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 11:46
Привет! Вот еще темы с решениями:

Считывание String посимвольно либо Char in Switch
Здравствуйте, суть такова: Нужно написать 3 числа (0-7), а дальше считать...

Считывание строк с клавиатуры без учёта разделителей в переменные типа std::string
Подскажите, есть какой способ считывать значения с клавиатуры без учёта...

Считывание файла в массив и запись нового файла
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100...

Как узнать что при считывание очередного слова в string был сделан переход на новую строку в файле?
подскажите пожалуйста, как узнать что при считывание очередного слова в string...


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

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

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