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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
swed
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 12
#1

fopen и путь к файлу c русскими буквами - C++

06.06.2011, 20:40. Просмотров 3150. Ответов 4
Метки нет (Все метки)

Всем привет
Вот столкнулся с такой проблемой - необходимо открыть файл, путь к которому вводится в консоли. Для открытия файла использую сишную функцию fopen, при этом файлы, путь к которым содержит только латинские буквы, успешно открываются(указатель не указывает NULL), а если в пути появляются русские буквы(т.е. UTF-8), то файл просто не открывается(указатель указывает на NULL).
WinApi'шные функции CharToOem и AnsiToOem не помогли, а с функцией _wfopen не разобрался. Уважаемые эксперты, прошу Вашей помощи. Заранее благодарен
P.S. вот, собственно, сам исходник
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
    char filename[1024];
    cin.getline(filename, sizeof(filename));
    FILE* in = fopen(filename, "r");
    if(in == NULL) cout << "Error opening file";
    else cout << "File was successfully opened";
    system("PAUSE");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 20:40     fopen и путь к файлу c русскими буквами
Посмотрите здесь:

Fopen не видит путь к файлу - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;map&gt; typedef...

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

Вывод русскими буквами - C++
Вообщем в задачке нужно рассчитать всевозможные тройки ФИО. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; #include...

Корректная работа программы с русскими буквами - C++
Здравствуйте. Мне нужно было написать программу, которая ставит кратчайшее слово в конец и из строки убирает все цифры. В принципе,...

Ввод и вывод текста русскими буквами - C++
Уже неделю лазаю туда-сюда, в поисках решения. Посмотрите пожалуйста, что можно добавить чтобы в консоли выводили русские буквы. ...

Регистронезависимое сравнение строк с русскими буквами - C++
Необходимо регистронезависимо сравнивать строки string с русскими буквами. Пробовал поиграться с встроенным toUpper но у меня вот так он не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
06.06.2011, 20:45     fopen и путь к файлу c русскими буквами #2
если уж ты используешь iostream то пользуйся и fstream
swed
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 12
06.06.2011, 22:50  [ТС]     fopen и путь к файлу c русскими буквами #3
Цитата Сообщение от pito211 Посмотреть сообщение
если уж ты используешь iostream то пользуйся и fstream
весьма полезное замечание, но моя проблема так и остается в силе
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
06.06.2011, 23:21     fopen и путь к файлу c русскими буквами #4
Цитата Сообщение от swed Посмотреть сообщение
CharToOem и AnsiToOem
OemToCharA
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdio>
#include <windows.h>
using namespace std;
 
int main()
{
    char filename[1024];
    cin.getline(filename, sizeof(filename));
    OemToCharA(filename, filename);
    FILE* in = fopen(filename, "r");
    if(in == NULL) cout << "Error opening file";
    else cout << "File was successfully opened";
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 23:49     fopen и путь к файлу c русскими буквами
Еще ссылки по теме:

как вывести русскими буквами слово С++ - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;string&gt; using namespace std; int main(){ string word; cin&gt;&gt;word; ...

Программа не хочет работать с русскими буквами - C++
Здравствуйте! Программа инвертирует цифры в 8 системе счисления, и должна преобразовывать Заглавные Русские буквы в строчные. ...

Массив словаря почему-то не работает с русскими буквами - C++
Дан двумерный массив словаря, почему не работает с русскими буквами, а работает только с английскими, помогите разобраться: #include...

Неправильно работает функция strcmp c русскими буквами - C++
Пытаюсь сравнить строку с литералом. void main() { setlocale(LC_ALL, &quot;Rus&quot;); string s1; cin &gt;&gt; s1; int k =...

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

Как указать пусть к файлу в fopen - C++
Здраствуйте, подскажите пожалуйсто, как мне указать определенный пусть к файлам в программе:#include &lt;stdio.h&gt; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
swed
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 12
06.06.2011, 23:49  [ТС]     fopen и путь к файлу c русскими буквами #5
igorrr37, спасибо, все заработало
Yandex
Объявления
06.06.2011, 23:49     fopen и путь к файлу c русскими буквами
Ответ Создать тему
Опции темы

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