Как указать путь к файлу
Как в Си указать путь к файлу? И как указать чтоб записи были в конце файла, не сразу после последнего символа а в следующий строке?
1 2 3 4 5 6 7 8 9
#include int main() { FILE *fp; fp=fopen(. ,"а"); . fclose(fp); }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как дать пользователю возможность указать путь к файлу, с которого необходимо считать данные
Здравствуйте, необходимо разработать программу вычисляющую площади различных фигур, при этом данные.
Дать пользователю возможность указать путь к файлу
Помогите зделать так чтобы Доступ к файлу, был возможен и задавался в диалоге с пользователем. вот.
Как ввести путь к файлу с клавиатуры?
как ввести путь к файлу с клавиатуры?
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
Сообщение от Doctor_
И как указать чтоб записи были в конце файла, не сразу после последнего символа а в следующий строке?
Ничего не понял.
1 2 3
char filename[BUFSIZ]; scanf ("%s", filename); fopen (filename,. );
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
есть файл с записями, новые записи надо записать в конце файла, но должен быть отступ перед последней строчкой в файле
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
fprintf (file, "\n");
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
с этим я разобрался, как указать путь на файл, например он находиться Computer\Local Disk(C\temp но .эхэ на десктопе, как ему показать куда записывать?
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
Без проверок
1 2 3 4 5
FILE *file; char filename[BUFSIZ]; scanf ("%s", filename); file = fopen (filename, "w"); fprintf (file, "\n");
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
оказалось проще
fp=fopen("C:/temp","a");
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как указать путь к файлу?
У меня есть проект UniversityRankings.Data и обязательно, чтобы файлs находились именно в самом.
Как указать путь к файлу?
Привет, подскажите пожалуйста, как мне лучше сделать? у меня есть программа, которая меняет текст.
Как указать путь к файлу
Всем привет! Как в Паскале написать правильно путь к текстовому файлу? Извините за флуд если что.
Как указать путь к файлу?
После опубликации проекта. при запуске приложения просит базу данных в.
как передавать путь к файлу?
Если программа лежит в папке «D:Proga\Bin», то надо выйти на уровень вверх:
std::string path("..\\File\\file.txt");
(Двойная косая черта нужна, так как в Си одинарная такая черта обозначает управляющий символ).
Вариант, как могла бы выглядеть ваша программа:
#include #include #include int main(int argc, char* argv[]) < if (argc >1) < std::string path(argv[1]); std::ofstream fout(path); // Тут работаем с файлом >else < std::cout return 0; >
Как указать путь к файлу в c
У меня было так
#define DATA_FILE _T("C://set.ds")
Я открывал этот файл, при необходимости он создавался — и все было бы хорошо, но
#define DATA_FILE _T("C://Program Files//Internet Explorer//PLUGINS//set.ds")
И все больше файл открываться не хочет! (и не создается) Я больше ничего не менял в программе — значит виноваты эти строки. Подскажите, плиз.
03.03.06 22:54: Перенесено модератором из ‘C/C++’ — Павел Кузнецов
Re: Как правильно писать путь к файлу?
От: | LuciferMoscow |
Дата: | 03.03.06 10:19 |
Оценка: |
Здравствуйте, AlexDav, Вы писали:
AD>У меня было так
AD>
AD>#define DATA_FILE _T("C://set.ds") AD>
AD>Я открывал этот файл, при необходимости он создавался — и все было бы хорошо, но
AD>Я заменил на
AD>
AD>#define DATA_FILE _T("C://Program Files//Internet Explorer//PLUGINS//set.ds") AD>
AD>И все больше файл открываться не хочет! (и не создается) Я больше ничего не менял в программе — значит виноваты эти строки. Подскажите, плиз.
Попробуй путь взять в кавычки. У тебя есть пробел в пути к файлу
const TCHAR DATA_FILE[]_T("\"C://Program Files//Internet Explorer//PLUGINS//set.ds\"");
Re: Как правильно писать путь к файлу?
От: | HiSH | http://m0riarty.ya.ru |
Дата: | 03.03.06 10:21 | |
Оценка: | 2 (2) |
Здравствуйте, AlexDav, Вы писали:
AD>
AD>#define DATA_FILE _T("C://set.ds") AD>
AD>Я открывал этот файл, при необходимости он создавался — и все было бы хорошо, но
AD>Я заменил на
AD>
AD>#define DATA_FILE _T("C://Program Files//Internet Explorer//PLUGINS//set.ds") AD>
AD>И все больше файл открываться не хочет! (и не создается) Я больше ничего не менял в программе — значит виноваты эти строки. Подскажите, плиз.
А зачем двойные слеши? Должно быть или «c:\\program files\\. «, или «c:/program files/. «
Re: Как правильно писать путь к файлу?
От: | rg45 |
Дата: | 03.03.06 10:24 |
Оценка: |
Здравствуйте, AlexDav, Вы писали:
AD>У меня было так
AD>
AD>#define DATA_FILE _T("C://set.ds") AD>
AD>Я открывал этот файл, при необходимости он создавался — и все было бы хорошо, но
AD>Я заменил на
AD>
AD>#define DATA_FILE _T("C://Program Files//Internet Explorer//PLUGINS//set.ds") AD>
AD>И все больше файл открываться не хочет! (и не создается) Я больше ничего не менял в программе — значит виноваты эти строки. Подскажите, плиз.
1. Либо «C://set.ds» либо «C:/set.ds» — двойной слэш — это лишний символ в строке, хотя большинством фунций «глотается» нормально.
2. Чтобы ответить, все таки, что не так, нужно видеть, как используется эта строка.
Вполне возможно, что проблема в пробелах, которые присутствуют во втором варианте и которых нет в первом.
—
C++ уже затем учить надо, что он ум в порядок приводит. (с) Ломоносов М.В.
Re[2]: Как правильно писать путь к файлу?
От: | AlexDav |
Дата: | 03.03.06 10:27 |
Оценка: |
Здравствуйте, HiSH, Вы писали:
HSH>А зачем двойные слеши? Должно быть или «c:\\program files\\. «, или «c:/program files/. «
Так вот зачем эти странные палочки?! И точно работает
Re[2]: Как правильно писать путь к файлу?
От: | rg45 |
Дата: | 03.03.06 10:27 |
Оценка: |
R>1. Либо «C://set.ds» либо «C:/set.ds» — двойной слэш — это лишний символ в строке, хотя большинством фунций «глотается» нормально.
Написал не то, что хотел, надо было так:
—
C++ уже затем учить надо, что он ум в порядок приводит. (с) Ломоносов М.В.
Re: Как правильно писать путь к файлу?
От: | RevSegment |
Дата: | 03.03.06 10:34 |
Оценка: |
Здравствуйте, AlexDav, Вы писали:
AD>У меня было так
AD>
AD>#define DATA_FILE _T("C://set.ds") AD>
AD>Я открывал этот файл, при необходимости он создавался — и все было бы хорошо, но
AD>Я заменил на
AD>
AD>#define DATA_FILE _T("C://Program Files//Internet Explorer//PLUGINS//set.ds") AD>
AD>И все больше файл открываться не хочет! (и не создается) Я больше ничего не менял в программе — значит виноваты эти строки. Подскажите, плиз.
А так не пробовал?
«c:\\Folder One\\Folder Two\\file.ext»
. << RSDN@Home 1.1.4 stable SR1 rev. 568>>
. опыт приходит во время боя .<>
Re[2]: Как правильно писать путь к файлу?
От: | AlexDav |
Дата: | 03.03.06 10:46 |
Оценка: |
Здравствуйте, LuciferMoscow, Вы писали:
LM>Попробуй путь взять в кавычки. У тебя есть пробел в пути к файлу
LM>
LM>const TCHAR DATA_FILE[]_T("\"C://Program Files//Internet Explorer//PLUGINS//set.ds\""); LM>
я попробовал такой путь «C:/Data/set.ds» работает — т.е. ты (можно на ты?) это пробелы, но как ты написал тоже не прокатывает?? Что Делать.
Re[3]: Как правильно писать путь к файлу?
От: | ekamaloff |
Дата: | 03.03.06 10:50 |
Оценка: |
Здравствуйте, AlexDav, Вы писали:
AD>я попробовал такой путь «C:/Data/set.ds» работает — т.е. ты (можно на ты?) это пробелы, но как ты написал тоже не прокатывает?? Что Делать.
Покажи где ты ее используешь и на каком варианте строки ты сейчас остановился.
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[4]: Как правильно писать путь к файлу?
От: | AlexDav |
Дата: | 03.03.06 11:07 |
Оценка: |
Здравствуйте, ekamaloff, Вы писали:
E>Покажи где ты ее используешь и на каком варианте строки ты сейчас остановился.
Прошу прощения за MFC
#define DATA_FILE _T("\"C:\\Program Files\\Internet Explorer\\PLUGINS\\set.ds\"") . UINT nFlags = CFile::typeBinary|CFile::modeWrite; if(_waccess(DATA_FILE,0)) // надо его создать? < nFlags |= CFile::modeCreate; bCanSave = TRUE; >else < bCanSave = CanSerialize(); // всегда TRUE :) > if(bCanSave) < CFile file; CFileException fe; if(file.Open(DATA_FILE, nFlags, &fe)) // Вот и не посредственное использование < CArchive ar(&file, CArchive::store); Serialize(ar); ar.Close(); >file.Close(); >
Re[5]: Как правильно писать путь к файлу?
От: | AlexDav |
Дата: | 03.03.06 13:35 |
Оценка: |
Хотите верти — хотите нет, но
#define DATA_FILE _T("C:\\Program Files\\Internet Explorer\\PLUGINS\\set.dln")
просто начала работать и все! Зуб даю кроме этой строчки в программе ничего не менял!
Re[6]: Как правильно писать путь к файлу?
От: | rg45 | |
Дата: | 03.03.06 13:39 | |
Оценка: | 4 (1) |
Здравствуйте, AlexDav, Вы писали:
AD>Хотите верти — хотите нет, но
AD>
AD>#define DATA_FILE _T("C:\\Program Files\\Internet Explorer\\PLUGINS\\set.dln") AD>
AD>просто начала работать и все! Зуб даю кроме этой строчки в программе ничего не менял!
Впервоначальном варианте у тебя все слэши были двойные. А петерь вместо них одинарные бэк-слэши (литерал «\\» автоматически преобразуется в одинарный бэк-слэш). Значит, какая то из функций не могла вынести присутствия лишних символов в строке.
—
C++ уже затем учить надо, что он ум в порядок приводит. (с) Ломоносов М.В.
Re[6]: Как правильно писать путь к файлу?
От: | i-maverick |
Дата: | 03.03.06 13:48 |
Оценка: |
Здравствуйте, AlexDav, Вы писали:
AD>Хотите верти — хотите нет, но
AD>
AD>#define DATA_FILE _T("C:\\Program Files\\Internet Explorer\\PLUGINS\\set.dln") AD>
AD>просто начала работать и все! Зуб даю кроме этой строчки в программе ничего не менял!
Тебе ведь так и сказали — нужно либо одинарный прямой слэш, либо двойной обратный.
Ты бы хоть разобрался, зачем тут двойной слэш, чтоб больше не путаться.
Re[7]: Как правильно писать путь к файлу?
От: | AlexDav |
Дата: | 03.03.06 13:54 |
Оценка: |
Здравствуйте, i-maverick, Вы писали:
IM>Тебе ведь так и сказали — нужно либо одинарный прямой слэш, либо двойной обратный.
IM>Ты бы хоть разобрался, зачем тут двойной слэш, чтоб больше не путаться.
Ну ладно ругать то сразу — никто же не сказал что надо весь проект перекомпилить что бы подхватил эту дефайну
Спасибо — за время потраченное на меня
Как указать путь к файлу в c
Для работы с файлами в стандартной библиотеке определен заголовочный файл fstream , который определяет базовые типы для чтения и записи файлов. В частности, это:
- ifstream : для чтения с файла
- ofstream : для записи в файл
- fstream : совмещает запись и чтение
Для работы с данными типа wchar_t для этих потоков определены двойники:
- wifstream
- wofstream
- wfstream
Открытие файла
При операциях с файлом вначале необходимо открыть файл с помощью функции open() . Данная функция имеет две версии:
- open(путь)
- open(путь, режим)
Для открытия файла в функцию необходимо передать путь к файлу в виде строки. И также можно указать режим открытия. Список доступных режимов открытия файла:
- ios::in : файл открывается для ввода (чтения). Может быть установлен только для объекта ifstream или fstream
- ios::out : файл открывается для вывода (записи). При этом старые данные удаляются. Может быть установлен только для объекта ofstream или fstream
- ios::app : файл открывается для дозаписи. Старые данные не удаляются.
- ios::ate : после открытия файла перемещает указатель в конец файла
- ios::trunc : файл усекается при открытии. Может быть установлен, если также установлен режим out
- ios::binary : файл открывается в бинарном режиме
Если при открытии режим не указан, то по умолчанию для объектов ofstream применяется режим ios::out , а для объектов ifstream — режим ios::in . Для объектов fstream совмещаются режимы ios::out и ios::in .
std::ofstream out; // поток для записи out.open("hello1.txt"); // окрываем файл для записи std::ofstream out2; out2.open("hello2.txt", std::ios::app); // окрываем файл для дозаписи std::ofstream out3; out2.open("hello3.txt", std::ios::out | std::ios::trunc); // установка нескольких режимов std::ifstream in; // поток для чтения in.open("hello4.txt"); // окрываем файл для чтения std::fstream fs; // поток для чтения-записи fs.open("hello5.txt"); // окрываем файл для чтения-записи
Однако в принципе необязательно использовать функцию open для открытия файла. В качестве альтернативы можно также использовать конструктор объектов-потоков и передавать в них путь к файлу и режим открытия:
fstream(путь) fstream(путь, режим)
При вызове конструктора, в который передан путь к файлу, данный файл будет автоматически открываться:
std::ofstream out("hello.txt"); std::ifstream in("hello.txt"); std::fstream fs("hello.txt", std::ios::app);
В данном случае предполагается, что файл «hello.txt» располагается в той же папке, где и файл программы.
Вообще использование конструкторов для открытия потока является более предпочтительным, так как определение переменной, представляющей файловой поток, уже преполагает, что этот поток будет открыт для чтения или записи. А использование конструктора избавит от ситуации, когда мы забудем открыть поток, но при этом начнем его использовать.
В процессе работы мы можем проверить, окрыт ли файл с помощью функции is_open() . Если файл открыт, то она возвращает true:
std::ifstream in; // поток для чтения in.open(«hello.txt»); // окрываем файл для чтения // если файл открыт if (in.is_open())
Закрытие файла
После завершения работы с файлом его следует закрыть с помощью функции close() . Также стоит отметить, то при выходе объекта потока из области видимости, он удаляется, и у него автоматически вызывается функция close.
#include #include int main() < std::ofstream out; // поток для записи out.open("hello.txt"); // окрываем файл для записи out.close(); // закрываем файл std::ifstream in; // поток для чтения in.open("hello.txt"); // окрываем файл для чтения in.close(); // закрываем файл std::fstream fs; // поток для чтения-записи fs.open("hello.txt"); // окрываем файл для чтения-записи fs.close(); // закрываем файл >