Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97

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

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

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

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

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

На вскидку нужной функции не нашел (вернее запрос задал не корректно). Сразу прошу прощение за сам вопрос, аналог сишной функции... но проблема в том что в си нету string и врядле мне посоветуют сишные гении что то
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2017, 15:30
Ответы с готовыми решениями:

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

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

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

22
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
23.04.2017, 15:39
C++
1
2
std::string s;
std::getline(file, s);
1
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
23.04.2017, 15:43
так присваивай стринговой переменной значение чара
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
23.04.2017, 15:43
Можно еще ">>" попробовать вкупе с ftream, ifsteam или ofstream.
0
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
23.04.2017, 15:51  [ТС]
likehood, так у нее же вроде буфер типа char, или нет?

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

Добавлено через 2 минуты
C++
1
2
3
std::string s;
std::ifstream file(fileName);
std::getline(file, s);
1
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
23.04.2017, 17:38  [ТС]
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
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
23.04.2017, 17:39
Цитата Сообщение от Rec_cm Посмотреть сообщение
так мне нужно на считывания из файла, а не в файл
ifstream это чтение (input) из файла

Добавлено через 1 минуту
Цитата Сообщение от Rec_cm Посмотреть сообщение
po->b=getline(file,buff);
Присваивать не надо, вызывать просто как getline(file,buff);
1
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
23.04.2017, 17:40  [ТС]
likehood, и оно скопирует первую строку. А дальше?
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
23.04.2017, 17:41
Цитата Сообщение от Rec_cm Посмотреть сообщение
и оно скопирует первую строку.
Прочитает из файла и запишет в строку buff.
Цитата Сообщение от Rec_cm Посмотреть сообщение
А дальше?
А что дальше?
0
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
23.04.2017, 17:44  [ТС]
likehood, проблема в том что в файле у меня находиться приблизительно вот что

first name
second name
selary
....

и это все мне нужно загрузить в соответсвующие поля структурной переменной

Добавлено через 1 минуту
likehood, если хотите я могу вам показать код того чт у меня есть, правда input из файла у меня на си.. (мне все равно на чем писать, мне нужен результат)
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
23.04.2017, 17:49
Цитата Сообщение от Rec_cm Посмотреть сообщение
и это все мне нужно загрузить в соответсвующие поля структурной переменной
В чём проблема? Просто вызываем функцию getline нужное число раз.
0
1 / 1 / 3
Регистрация: 15.08.2016
Сообщений: 97
23.04.2017, 17:51  [ТС]
likehood, а, там указатель смещается сам... это хорошо. Такой, банаьный вопрос. как мне затереть старое значение строки? что бы новое записать
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
23.04.2017, 17:56
Цитата Сообщение от Rec_cm Посмотреть сообщение
как мне затереть старое значение строки? что бы новое записать
В смысле, изменить строку в файле?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2017, 17:56
Помогаю со студенческими работами здесь

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

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

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

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

C++ DLL для работы с php файлами
Есть ли такой? Если есть, дайте пож-та!


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru