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

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

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

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

06.06.2011, 20:40. Просмотров 2964. Ответов 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 русскими буквами
Посмотрите здесь:

C++ Как указать пусть к файлу в fopen
C++ Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в другом файле тот же текст, записанный заглавными буквами
C++ Ввод и вывод текста русскими буквами
C++ Регистронезависимое сравнение строк с русскими буквами
как вывести русскими буквами слово С++ C++
C++ Вывод русскими буквами
C++ Fopen не видит путь к файлу
C++ Сравнивает ли значения функция srtcmp, если они введены русскими буквами?
Неправильно работает функция strcmp c русскими буквами C++
Корректная работа программы с русскими буквами C++
C++ Программа не хочет работать с русскими буквами
Зашифровать текст, записанный русскими буквами и знаками препинания C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для 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
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 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;
}
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 русскими буквами
Ответ Создать тему
Опции темы

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