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

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

23.04.2017, 15:30. Показов 2435. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru