Название: Создание txt файла Отправлено: Sandr от Ноябрь 13, 2010, 18:45 Как видно из кода, он должен создавать файл и записывать в него данные, но кьют выкидывает уйму ошибок.. Скажите пжл, что нужно исправить? Где можно почитать материал на эту тему?
#include <iostream> #include <conio.h> int main() { FILE * fo; fo = fopen("test.txt","wt"); int i; for( i=0; i<100; i++) { fprintf( fo, "%d\n", i ); } fclose(fo); if(fo == true) { std::cout<<"file created"; } else { std::cout<<"error!"; } Sleep(5000); } Название: Re: Создание txt файла Отправлено: noirhor от Ноябрь 13, 2010, 19:08 Казалось бы, причем здесь Qt?
Где можно почитать материал на эту тему? http://doc.qt.nokia.com/4.7/qfile.html (http://doc.qt.nokia.com/4.7/qfile.html)Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 13, 2010, 19:27 забыл уточнить. Где можно почитать этот материал на русском?
Название: Re: Создание txt файла Отправлено: Alex Custov от Ноябрь 14, 2010, 00:02 Название: Re: Создание txt файла Отправлено: tim474 от Ноябрь 14, 2010, 03:21 А причём здесь Qt? В том куске кода ни одного обращения к библиотекам Qt нету.
Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 13:50 Alex Custov, это стало модным да? В темах, где новичёк задаёт вопрос или описыват проблему, смеяться? Ну да, я ошибся, перепутал conio.h с Windows.h и теперь надо смеяться? Лучшеб помог или вобще ничё не писал, оффтопщик фигов!!!
+++ tim474, будь добр, помоги исправить? Я нашёл этот код в сети и немного переделал, но как оказалось он совершенно не подходит. Может у кого нибудь есть простые примеры, касающиеся моего вопроса? Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 14:53 Немного исправил код:
#include <iostream> #include <Windows.h> #include <QFile> int main() { FILE * fo; fo = fopen("C:\\test.txt","wt"); int i; for( i=0; i<100; i++ ) { fprintf( fo, "%d\n", i ); } fclose(fo); Sleep(5000); } Ошибок не выдаёт, но файл не создаётся Название: Re: Создание txt файла Отправлено: merke от Ноябрь 14, 2010, 16:15 Вопрос: тебе нужно реализовать на С++ или же на Qt, если же на Qt то кури справку по QFile или QTextStream & QDataStream
Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 16:48 и так и так желательно
Название: Re: Создание txt файла Отправлено: tim474 от Ноябрь 14, 2010, 17:18 Цитировать Немного исправил код: И зачем тогда там заголовок QFile, если он ни разу не используется? А уж зачем conio.h, wondows.h и sleep — вообще непонятно. По делу — попробуй подключить <stdio.h>, а также вместо "wt" попробуй просто "w".ЗЫ: это будет работа с файлами при помощи средств языка C. Если не стоит требование, что надо использовать чистый C, то лучше пользоваться более удобными средствами стандартной библиотеки C++ (http://www.cplusplus.com/reference/iostream/fstream/) Название: Re: Создание txt файла Отправлено: ufna от Ноябрь 14, 2010, 17:24 Может стоит по строчкам разобраться что делается и посмотреть документацию по QFile? (а сразу видно что не смотрел)
Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 17:40 tim474, Windows.h нужен чтоб Sleep(5000); работал.
<stdio.h> подключил - без изменений. Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 17:41 ufna, на английском я плохо читаю
Название: Re: Создание txt файла Отправлено: ufna от Ноябрь 14, 2010, 17:52 плохо или нет - но ведь даже не взглянул, а там все есть как примеры к классу :)
http://crossplatform.ru/ - здесь есть на русском частично Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 18:30 взглянул, но практически ничего не понял((
Можешь написать пример? Я на примерах просто лучше понимаю Название: Re: Создание txt файла Отправлено: tim474 от Ноябрь 14, 2010, 18:53 tim474, Windows.h нужен чтоб Sleep(5000); работал. А зачем там Sleep(5000)? Тем более, если ты собираешься использовать Qt, то там есть свои средства работы со временем. Зачем использовать вендоузячьи?Название: Re: Создание txt файла Отправлено: tim474 от Ноябрь 14, 2010, 18:57 А если попробовать вместо C:\\test.txt указать относительный путь, например, просто test.txt, чтобы в той же папке файл создался? Просто у меня этот код заработал, но путь пришлось изменить, т.к никакого диска C у меня нету :)
Название: Re: Создание txt файла Отправлено: ufna от Ноябрь 14, 2010, 19:43 Третья ссылка в гугле, первая - русскоязычная
http://wiki.forum.nokia.com/index.php/Работа_с_файлами_в_Qt_(QFile) Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 21:47 tim474, Windows.h нужен чтоб Sleep(5000); работал. А зачем там Sleep(5000)? Тем более, если ты собираешься использовать Qt, то там есть свои средства работы со временем. Зачем использовать вендоузячьи?мне ими проще.. Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 21:48 А если попробовать вместо C:\\test.txt указать относительный путь, например, просто test.txt, чтобы в той же папке файл создался? Просто у меня этот код заработал, но путь пришлось изменить, т.к никакого диска C у меня нету :) сделал, получилось, но файл пустой( Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 14, 2010, 21:52 Третья ссылка в гугле, первая - русскоязычная http://wiki.forum.nokia.com/index.php/Работа_с_файлами_в_Qt_(QFile) Для работы с файлами в проекте необходимо подключить библиотеку: #include <QFile> Для взаимодействия с файлами используются методы доступа к файлам: QIODevice::ReadOnly Открыть файл для чтения QIODevice::WriteOnly Открыть файл для записи (таким методом можно просто создать файл) QIODevice::ReadWrite Открыть файл для чтения и записи QIODevice::Append Открыть файл для дополнения файла в конец Пример записи файла: QFile file("c://test.txt"); file.open(QIODevice::Append | QIODevice::Text); QTextStream out(&file); out << temp; out << "\n"; file.close(); Не забывайте закрывать файлы после работы с ними командой: file.close(); я вот это не понял file.open(QIODevice::Append | QIODevice::Text); Название: Re: Создание txt файла Отправлено: tim474 от Ноябрь 14, 2010, 22:56 tim474, Windows.h нужен чтоб Sleep(5000); работал. А зачем там Sleep(5000)? Тем более, если ты собираешься использовать Qt, то там есть свои средства работы со временем. Зачем использовать вендоузячьи?мне ими проще.. Название: Re: Создание txt файла Отправлено: Nimbus от Ноябрь 15, 2010, 05:37 я вот это не понял file.open(QIODevice::Append | QIODevice::Text); Открываем файл для добавления (а не полной его перезаписи) в него данных в текстовом режиме.Название: Re: Создание txt файла Отправлено: kuzulis от Ноябрь 15, 2010, 08:17 2 Sandr,
я конечно понимаю, что раз это раздел для новичков, то тут задают простые вопросы... Но не до такой же степени то? У тебя вообще, совесть есть? :) Цитировать ufna, на английском я плохо читаю Гугл транслятор в помощь. Человек, который хочет разобраться - разберется.. А отмазы типа "я по буржуинскому не бельме-шельме" не принимаются!Цитировать я вот это не понял file.open(QIODevice::Append | QIODevice::Text); Ну ты уж совсем.. Скажу я тебе...Название: Re: Создание txt файла Отправлено: merke от Ноябрь 15, 2010, 09:12 чувак, мой тебе совет, учи c++ сначала, вообще просто синтаксис, к счастью литературы море!
А спрашивать что то на каждом шаге это не дело! Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 15, 2010, 17:09 tim474, Windows.h нужен чтоб Sleep(5000); работал. А зачем там Sleep(5000)? Тем более, если ты собираешься использовать Qt, то там есть свои средства работы со временем. Зачем использовать вендоузячьи?мне ими проще.. Ну, например, в первом посте слип нужен был чтоб задержать вывод инфы о результате работы Название: Re: Создание txt файла Отправлено: tim474 от Ноябрь 15, 2010, 19:23 А зачем его задерживать? Здесь лучше getchar(), чтобы остановить выполнение до нажатия enter.
Название: Re: Создание txt файла Отправлено: Sandr от Ноябрь 15, 2010, 21:42 tim474, я не знал про это.
|