С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/27: Рейтинг темы: голосов - 27, средняя оценка - 4.78
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
1

Таймер в консольном приложении

24.09.2009, 16:12. Показов 4931. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток, у меня вопрос, как сделать так, чтобы программа записывала текст в файл, а, к примеру через 40 минут стирала весь текст из этого файла? как можно реализовать это в таком коде?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <stdio.h>
 
int main()
{
  FILE* file;
  char* file_name = "C:\\WINDOWS\\System32\\drivers\\etc\\hosts";
 
  file = fopen(file_name, "a");
  
  if(!file)
    return 0;
 
  fseek(file, 0, SEEK_END);
  
  fputs("\n93.158.134.11 vkontakte.ru", file );
  
  fclose( file );
 
  return 0;
}
P.S. Если диска С: не существует то программа не заработает -
C++
1
char* file_name = "C:\\WINDOWS\\System32\\drivers\\etc\\hosts";
, я слышал о %systemroot%, но не знаю как это оформляется.

Заранее спасибо!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2009, 16:12
Ответы с готовыми решениями:

Таймер в консольном приложении
Подскажите, как сделать чтобы консольное приложение было постоянно запущено и раз в 1 минуту...

Таймер в консольном однопоточном приложении на c++
Привет всем! Я только начинаю разбираться в c++, но опыт программирования все же имеется, правда на...

Как реализовать таймер в консольном приложении?
И как-нибудь без while и sleep, чтобы программа не висела. Пытался делать через winapi, но не понял...

Изображение в консольном приложении.
Помогите, пожалуйста, с загрузкой и отображением изображений формата bmp в консольном приложении...

17
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
24.09.2009, 16:23 2
selevit, удалять нельзя,можно только перезписать в другой файл результат.
0
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
24.09.2009, 16:25  [ТС] 3
спасибо, как так удалять нельзя, ведь есть же такая функция стирания всего текста из файла?
0
MCSD: APP BUILDER
8794 / 4073 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
Записей в блоге: 5
24.09.2009, 16:25 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
 
int main()
{
  FILE* file;
  char* file_name = "C:\\WINDOWS\\System32\\drivers\\etc\\hosts";
 
  file = fopen(file_name, "a");
  
  if(!file)
    return 0;
 
  fseek(file, 0, SEEK_END);
  
  fputs("\n93.158.134.11 vkontakte.ru", file );
  
  fclose( file );
 
  Sleep(40 * 60 * 1000); // ждём 40 минут
 
  file = fopen(file_name, "w+t"); // стираем весь текст
  fclose(file);
 
  return 0;
}
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
24.09.2009, 16:27 5
таймер
C++
1
2
3
4
5
int i=40;
while(40!=0){
Sleep(60000);//1000=1 секунду
--i;
}
Добавлено через 59 секунд
Цитата Сообщение от Rififi Посмотреть сообщение
Sleep(40 * 60 * 1000); // ждём 40 минут
этого не знал.

selevit, так лучше,удобнее

Добавлено через 1 минуту
Rififi, а что такое file_name?
0
91 / 77 / 6
Регистрация: 08.10.2008
Сообщений: 296
24.09.2009, 16:31  [ТС] 6
спасибо, еще вопрос, как сделать, чтобы консоль не висела на экране 40 минут, а просто сворачивалась в процессы?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,965
24.09.2009, 18:10 7
Цитата Сообщение от МедведЪ Посмотреть сообщение
while(40!=0)
Так и Sleep никакого не нужно - само уснёт
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
24.09.2009, 22:16 8
easybudda, просто дело в том что можно выводить на экран с помощью int i-а..
то есть если слип,то нельзя узнать сколько осталось времени а если int то cout<<i;
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,965
24.09.2009, 23:15 9
МедведЪ,
C++
1
while ( i > 0 )
Почувствуйте разницу. У Вас бесконечный цикл получается.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.09.2009, 04:17 10
Цитата Сообщение от selevit
я слышал о %systemroot%, но не знаю как это оформляется
C
1
2
3
4
5
6
7
8
#include <stdlib.h>
 
...
 
    char *p;
 
    if ((p = getenv("systemroot")))
        printf("%s" "\n", p);
2
0 / 0 / 0
Регистрация: 21.09.2009
Сообщений: 3
25.09.2009, 04:46 11
написанный выше код напоминает мне участок хорошо знакомого всем вируса))))
осторожнее товарищи!!!!
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
25.09.2009, 15:25 12
Цитата Сообщение от easybudda Посмотреть сообщение
Почувствуйте разницу. У Вас бесконечный цикл получается.
C++
1
2
3
4
5
6
7
8
9
int i=40;
while(i!=0){
--i;
cout<<i;
system("cls");
Sleep(60*1000);
 
 
}
прокомпилируй
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
26.09.2009, 12:07 13
Цитата Сообщение от selevit Посмотреть сообщение
спасибо, еще вопрос, как сделать, чтобы консоль не висела на экране 40 минут, а просто сворачивалась в процессы?
http://vsokovikov.narod.ru/New... window.htm
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
26.09.2009, 16:10 14
kravam, попробывал,у меня что то не то,может не правильно делаю...вот мой код
C++
1
2
3
4
5
6
7
BOOL ShowWindow(
 
HWND hWnd, SW_FORCEMINIMIZE
 
int nCmdShow  
 
);
что не так?
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
26.09.2009, 17:06 15
МедведЪ, да всё не так.
Не надо копировать объявление функции, тем более неправильно (по указанной мной ссылке 2 аргумента, а у тебя 3)

Надо подсоединить заголовочный файл, где это объявление уже прописано.
Потом правильно вызвать эту функцию.
В числе прочего разобраться с хэндлом окна. (Первый аргумент, как его найти)
Ну, то есть забить в поисковике "Как найти хэндл окна". Это нетрудно, я как-то занимался этим, хэндл окна находиться по его названию, а в случае с консолью это название есть заголовок консоли...

Короче, вот код, нашёл у себя. Сперва создаёт окно, а потом его свёртывает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define MY_BUFSIZE 1024   
#include <stdio.h>
#include <windows.h>
 
int main(){
 
 char AdresZagolovkaOkna [MY_BUFSIZE];
 char BuferDlaProverki [MY_BUFSIZE];
 HWND DeskriptorOkna;
 
 GetConsoleTitle(AdresZagolovkaOkna, MY_BUFSIZE);
 DeskriptorOkna= FindWindow(NULL, AdresZagolovkaOkna);
 
 
  getchar (); 
 
 ShowWindow (DeskriptorOkna, SW_MINIMIZE);
 
  getchar ();
  return 0;
}
Вот так свёртывайте.
Настоятельно рекомендую ознакомиться с API-функциями

GetConsoleTitle
FindWindow
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
26.09.2009, 17:17 16
kravam,
Код
Error	1	error C2664: 'GetConsoleTitleW' : cannot convert parameter 1 from 'char [1024]' to 'LPWSTR'	c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp	11	proba
Error	2	error C2664: 'FindWindowW' : cannot convert parameter 2 from 'char [1024]' to 'LPCWSTR'	c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp	12	proba
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
26.09.2009, 17:54 17
Короче, ясно. Твоя среда не конвертирует тип char* в тип LPWSTR
(Переменная AdresZagolovkaOkna именно типа char*, а первый параметр функции GetConsoleTitle должен иметь тип LPWSTR)
что делать не знаю. Могу посоветовать попробовать объявить AdresZagolovkaOkna как указатель на любой тип (void*).
А потом при вызове GetConsoleTitle явно переопределить тип

GetConsoleTitle((char*)AdresZagolovkaOkna, MY_BUFSIZE) или
GetConsoleTitle((LPWSTR)AdresZagolovkaOkna, MY_BUFSIZE)

...А вообще, лучше посоветуйся с ребятами, у кого такая же среда программирования, как у тебя.
У меня DEV C++
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
26.09.2009, 23:25 18
kravam, тогда щас темку открою
0
26.09.2009, 23:25
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2009, 23:25
Помогаю со студенческими работами здесь

Таблица в консольном приложении
Здравствуйте. Помогите пожалуйста советом, как организовать таблицу в консольном приложении?...

Вывод в консольном приложении
Всем доброго времени суток. Написал приложение выводящие через printf 5 строк с паузой в 1 сек....

Тетрис в консольном приложении
Помогите с написанием тетриса в консоли, пожалуйста. Как сделать поле, и чтобы по нему...

Графика в консольном приложении VS
подскажите как построить систему координат X,Y. в консольном приложении.Какие модули следует...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru