Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
BeginerMan
49 / 48 / 5
Регистрация: 17.11.2012
Сообщений: 427
#1

Не удаётся записать строчку из файла - C++

10.01.2014, 19:27. Просмотров 347. Ответов 10
Метки нет (Все метки)

Всем здрасьте.
У меня есть файл, и запись в нём.
Мне нужно записать в переменную эту запись. Но не получается
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <Windows.h>
#include <fstream>
using namespace std;
 
int main()
{
    LPWSTR name;
 
    ifstream fin;
    fin.open("file.txt");
    if(fin.fail()) return 0;
 
    fin >> name;
 
    fin.close();
 
    return 0;
}
Пишет на ошибку оператора >>.

error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::ifstream" (или приемлемое преобразование отсутствует)
при попытке сопоставить список аргументов "(std::ifstream, LPWSTR)".

Почему он не хочешь записывать в LPWSTR ?
Если записать в char, то как ? И как потом можно будет перевести из char в LPWSTR ?? Вродь функция есть swprintf
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 19:27     Не удаётся записать строчку из файла
Посмотрите здесь:

Пропустить строчку при чтении из файла - C++
Подскажите как? Спасибо)

Не удаётся связать два файла timer.h и timer.cpp - C++
Добрый вечер, у меня есть класс и библиотеки которые нужно использовать в нескольких программах, по этому я хочу сделать отдельный файл...

Записать в третий файл только те пары чисел, в которых число из первого файла меньше соответствующего числа из второго файла. - C++
Дано два файла, содержащих одинаковое количество целых чисел. Записать из них в третий файл только те пары чисел, в которых число из...

Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого - C++
Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого.

Записать в файл S сначала компонент файла F, затем компонент файла G, с сохранением порядка - C++
Здраствуйте. Прошу помощи в решении этой задачи на С++. Составить программу, которая записывает в файл S сначала компонент файла F,...

Записать в файл S сначала компонент файла F, затем компонент файла G с сохранением порядка - C++
Составить программу, которая записывает в файл S сначала компонент файла F, затем компонент файла G с сохранением порядка.

Считать последний символ файла. Записать символ в конец файла - C++
Есть файл. Нужно сначала дописать в его конец один символ, а затем его считать. Как это сделать? Подскажите!

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 19:30     Не удаётся записать строчку из файла #2
C++
1
wifstream fin;
Но под name память нужно выделить.
BeginerMan
49 / 48 / 5
Регистрация: 17.11.2012
Сообщений: 427
10.01.2014, 19:33  [ТС]     Не удаётся записать строчку из файла #3
Типо так?
C++
1
2
LPWSTR* s;
s = new LPWSTR;
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 19:36     Не удаётся записать строчку из файла #4
Цитата Сообщение от BeginerMan Посмотреть сообщение
Типо так?
Типо так:
C++
1
 LPWSTR name = new wchar_t[255];
BeginerMan
49 / 48 / 5
Регистрация: 17.11.2012
Сообщений: 427
10.01.2014, 19:38  [ТС]     Не удаётся записать строчку из файла #5
Ааа, спасибо большое.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 19:42     Не удаётся записать строчку из файла #6
fin >> прочитает только слово (до первого пробельного символа). Если нужно строку из нескольких слов прочитать:
C++
1
fin.getline(name, 255);
BeginerMan
49 / 48 / 5
Регистрация: 17.11.2012
Сообщений: 427
10.01.2014, 19:49  [ТС]     Не удаётся записать строчку из файла #7
Это я знаю
А как поступить, если мне нужно к примеру, что бы в LPWSTR был массив, в одном было записано одно, в другом другое ?
Придётся двойной что ли делать ?
LPSWTR name = new wchar_t[20][2] ????
Например в файле такая запись.

C++
1
2
Здрасьте
До свидание
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 20:01     Не удаётся записать строчку из файла #8
C++
1
2
3
4
5
6
7
8
9
10
LPWSTR* name = new LPWSTR[2];
for (int i = 0; i < 2; ++i)
    name[i] = new wchar_t[20];
 
wifstream fin;
fin.open("file.txt");
if(fin.fail()) return 0;
 
for (int i = 0; i < 2; ++i)
    fin.getline(name[i], 20);
BeginerMan
49 / 48 / 5
Регистрация: 17.11.2012
Сообщений: 427
10.01.2014, 20:19  [ТС]     Не удаётся записать строчку из файла #9
Оооо, спасибо, всё работает

Добавлено через 2 минуты
Ну вот, последняя проблема
Он мне выдаёт не понятные символы Если я пытаюсь через MessageBox вывести(это WinAPI)
Я пробовал менять кодировку и файла, везде получаются не понятные символы
Не хочу менять Юникод в проекте...
Что делать?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 20:42     Не удаётся записать строчку из файла #10
Если так (файл в ANSI):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
setlocale(0, "rus_rus.1251");
    
    LPWSTR* name = new LPWSTR[2];
    for (int i = 0; i < 2; ++i)
        name[i] = new wchar_t[20];
 
    wifstream fin;
    fin.imbue(locale("rus_rus.1251"));
    fin.open("file.txt");
    if(fin.fail()) return 0;
 
    for (int i = 0; i < 2; ++i)
        fin.getline(name[i], 20);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 14:14     Не удаётся записать строчку из файла
Еще ссылки по теме:

Записать/считать с файла - C++
Прога должна считывать введеные символы, и при этом записывать их в файл. Файл пустой почему то Что нужно подправить? #include...

Записать в конец файла - C++
Сделал всё по гайду: #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;sstream&gt; #include &lt;string&gt; using...

Записать имя файла в переменную - C++
Здравствуйте, Возможно ли, вместо того , чтобы использовать SAD.open(&quot;Batch.cmd&quot;) ofstream SAD; SAD.open( &quot;Batch.cmd&quot;); ...

Как из файла записать в вектор? - C++
есть от такая программа в файл вроде пишет а вот придумать как извлечь в вектор не могу ( , подскажите как ето можно сделать или киньте...

ifstream записать число из файла - C++
Всем здрасьте. У меня вопросом по чтению файлов. Допустим есть у меня файл и я хочу записать содержимое , например это будет число. ...


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

Или воспользуйтесь поиском по форуму:
BeginerMan
49 / 48 / 5
Регистрация: 17.11.2012
Сообщений: 427
11.01.2014, 14:14  [ТС]     Не удаётся записать строчку из файла #11
Спасибо вам большое, помогло и без
setlocale
Весьма признателен вам

Добавлено через 20 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
fin.imbue(locale("rus_rus.1251"));
Этой строчки весьма хватило.
Yandex
Объявления
11.01.2014, 14:14     Не удаётся записать строчку из файла
Ответ Создать тему
Опции темы

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