Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
#1

Функции для работы с файлами - C++

23.04.2017, 15:30. Просмотров 330. Ответов 22
Метки нет (Все метки)

Есть на си такая прекрасная функция как fgets(). Мне нужен аналог но со string вместо char.

Суть проблемы. Мне нужно из файла копировать построчно данные (1 строка- фамилия, 2я- имя и т д). Как мне организовать это само копирование ?

Считанные данные мне нужно записать в очередь со структурными переменными.

На вскидку нужной функции не нашел (вернее запрос задал не корректно). Сразу прошу прощение за сам вопрос, аналог сишной функции... но проблема в том что в си нету string и врядле мне посоветуют сишные гении что то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2017, 15:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Функции для работы с файлами (C++):

Функции для работы с текстовыми файлами - C++
Файл содержит целые числа. Вычислить сумму значений из файла, в двоичном представлении которых K разрядов установлено в...

Укажите функции ввода-вывода для работы с бинарными файлами - C++
Укажите функции ввода-вывода для работы с бинарными файлами

Низкоуровневые функции работы с файлами - C++
Добрый день. Подскажите, пожалуйста, какие есть низкоуровневые функции работы с файлами? спасибо

Функции работы с файлами через поток не работают! Подскажите ошибку? - C++
int Write(House **massiv2, int *size2, int *size) { int i=0; ifstream file; char file_name = ""; printf("Type the...

Используя высокоуровневые функции работы с файлами, прочитать строку из файла - C++
Здравствуйте! Очень нужна помощь... В этом задании нужно с помощью свой лично написанной функции избавиться от лишних пробелов и с...

Библиотека для работы с файлами - C++
Нужен какой-нибудь набор готовых методов для работы с файлами: копирование, переименование, поиск подстроки, установка курсора на такую-то...

22
likehood
930 / 789 / 273
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
23.04.2017, 15:39 #2
C++
1
2
std::string s;
std::getline(file, s);
1
GeFacle
Рэмбо комнатный
95 / 95 / 34
Регистрация: 05.03.2017
Сообщений: 505
Завершенные тесты: 4
23.04.2017, 15:43 #3
так присваивай стринговой переменной значение чара
0
DemolitionMan
99 / 155 / 47
Регистрация: 06.04.2016
Сообщений: 992
23.04.2017, 15:43 #4
Можно еще ">>" попробовать вкупе с ftream, ifsteam или ofstream.
0
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
23.04.2017, 15:51  [ТС] #5
likehood, так у нее же вроде буфер типа char, или нет?

Добавлено через 52 секунды
GeFacle, я выгружаю из файла инфу и загоняю ее в переменную типа string
0
likehood
930 / 789 / 273
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
23.04.2017, 15:52 #6
Цитата Сообщение от Rec_cm Посмотреть сообщение
так у нее же вроде буфер типа char, или нет?
Типа std::string.
http://ru.cppreference.com/w/cpp/string/basic_string/getline
0
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
23.04.2017, 17:17  [ТС] #7
likehood, выдает ошибку что то типа:
Нет экземпляра перегруженной функции getline cоответствует типу аргументов списка аргументов
0
likehood
930 / 789 / 273
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
23.04.2017, 17:21 #8
Цитата Сообщение от Rec_cm Посмотреть сообщение
выдает ошибку
Для какого кода?
0
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
23.04.2017, 17:23  [ТС] #9
likehood,
C++
1
top->secondName=getline(file,a);
даже если просто
C++
1
getline(file,a)
та же ошибка
0
likehood
930 / 789 / 273
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
23.04.2017, 17:28 #10
Без типов непонятно в чём причина ошибки.
0
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
23.04.2017, 17:30  [ТС] #11
likehood, простите.
C++
1
2
FILE *file;
string a;
0
likehood
930 / 789 / 273
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
23.04.2017, 17:34 #12
Цитата Сообщение от Rec_cm Посмотреть сообщение
FILE *file;
Это сишные файлы, они плюсовые строки не понимаю. Надо использовать std::fstream.

Добавлено через 2 минуты
C++
1
2
3
std::string s;
std::ifstream file(fileName);
std::getline(file, s);
1
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
23.04.2017, 17:38  [ТС] #13
likehood, так мне нужно на считывания из файла, а не в файл

Добавлено через 1 минуту
likehood,

вот такой код, тоже выдает ошибку:

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
25
struct MyStruct
{
    
    string b;
 
}b, *po;
 
 
int main() {
    
    string buff;
    ifstream file;
    file.open("1.txt");
 
    po->b=getline(file,buff); // вот тут ошибку: Severity   Code    Description Project File    Line    Suppression State
Error   C2679   binary '=': no operator found which takes a right-hand operand of type 'std::basic_istream<char,std::char_traits<char>>' (or there is no acceptable conversion) ConsoleApplication7 c:\users\roman\documents\visual studio 2015\projects\consoleapplication7\consoleapplication7\consoleapplication7.cpp    26  
 
 
 
 
    cout << endl;
    system("pause");
    return 0;
 
}
0
likehood
930 / 789 / 273
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
23.04.2017, 17:39 #14
Цитата Сообщение от Rec_cm Посмотреть сообщение
так мне нужно на считывания из файла, а не в файл
ifstream это чтение (input) из файла

Добавлено через 1 минуту
Цитата Сообщение от Rec_cm Посмотреть сообщение
po->b=getline(file,buff);
Присваивать не надо, вызывать просто как getline(file,buff);
1
Rec_cm
1 / 1 / 1
Регистрация: 15.08.2016
Сообщений: 97
Завершенные тесты: 1
23.04.2017, 17:40  [ТС] #15
likehood, и оно скопирует первую строку. А дальше?
0
23.04.2017, 17:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2017, 17:40
Привет! Вот еще темы с ответами:

Класс для работы с файлами - C++
День добрый. Столкнулся со следующей проблемой. Задание: создать класс, инкапсулирующий работу с файлами через стандартную библиотеку...

Ищу 2 оператора для работы с файлами - C++
1)Оператор,который возвращает кол-во строк в текстовом файле 2)Оператор,который позволяет перемещаться в файле на указанную строку . ...

Что выбрать для работы с файлами? - C++
Что более производительно касательно доступа к файлам &lt;stdio.h&gt; , &lt;iostream&gt;,или использование API?

Не работает программа для работы с файлами - C++
Написал простую программу для записи строки в файл и чтения из файла. При попытке скомпилить компилятор ругается на строки ofstream o; ...


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

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

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