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

Заменить символ ':' на символ точки - C++

Восстановить пароль Регистрация
 
nanshakov
Студент :)
890 / 323 / 10
Регистрация: 29.01.2011
Сообщений: 1,680
10.06.2012, 00:40     Заменить символ ':' на символ точки #1
Прошу помочь доработать код.
Есть код созалние папки,имя которой - текушая дата.Но в стандартном выводе даты есь символ ":" ,который не может быть использован в качестве имени папки.Хочу заменить этот символ на символ точки.Посмотрел поиск,но из того,что нашел,не смог переделать пример.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    time_t seconds = time(NULL);
    tm* timeinfo = localtime(&seconds);
if (CreateDirectory(asctime(timeinfo) ,NULL))
    cout << "directory create" << endl;
else
    cout << "error create directory" << endl;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2012, 00:40     Заменить символ ':' на символ точки
Посмотрите здесь:

C++ Выводить строку, сокращая каждый раз на 1 символ, пока в строке не останется 1 символ
Сформировать список символов, оканчивающийся точкой. Заменить в списке символ “A” на символ “0” C++
Заменить в каждой сроке один заданный символ на другой заданный символ C++
C++ Это эта задача? (Поменять подряд заданный символ на другой символ.)
C++ Заменить в тексте символ, который вводится с клавиатуры на символ *
C++ В тексте удалить указанный символ везде, где он встречается. Программа не позволяет ввести символ
C++ Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ 'Q' или 'q'
Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
10.06.2012, 01:02     Заменить символ ':' на символ точки #2
а что если по-простому?

C++ (Qt)
1
2
3
4
5
6
7
8
tm* timeinfo = localtime(&seconds);
 
int size = ::strlen (timeinfo);
for (int i = 0; i < size; i++){
   if (*(timeinfo+i) == ':'){
    *(timeinfo+i) = '.';
   }
}
nanshakov
Студент :)
890 / 323 / 10
Регистрация: 29.01.2011
Сообщений: 1,680
10.06.2012, 10:25  [ТС]     Заменить символ ':' на символ точки #3
novi4ok, Спасибо за ответ,но не катит.Студийка выдает ошибки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int _tmain(int argc, _TCHAR* argv[])
{
    time_t seconds = time(NULL);
    tm* timeinfo = localtime(&seconds);
    int size = ::strlen (timeinfo);
    for (int i = 0; i < size; i++){
        if (*(timeinfo+i) == ':'){
            *(timeinfo+i) = '.';
            }
        }
if (CreateDirectory(asctime(timeinfo) ,NULL))
    cout << "directory create" << endl;
else
    cout << "error create directory" << endl;
    getch();
}
Код
Folder.cpp
1>c:\documents and settings\администратор\мои документы\visual studio 2010\projects\folder\folder\folder.cpp(15): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files\microsoft visual studio 10.0\vc\include\time.inl(112): см. объявление "localtime"
1>c:\documents and settings\администратор\мои документы\visual studio 2010\projects\folder\folder\folder.cpp(16): error C2664: strlen: невозможно преобразовать параметр 1 из "tm *" в "const char *"
1>          Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\documents and settings\администратор\мои документы\visual studio 2010\projects\folder\folder\folder.cpp(18): error C2678: бинарный "==": не найден оператор, принимающий левый операнд типа "tm" (или приемлемое преобразование отсутствует)
1>          c:\program files\microsoft visual studio 10.0\vc\include\exception(470): может быть "bool std::operator ==(const std::_Exception_ptr &,const std::_Exception_ptr &)"
1>          c:\program files\microsoft visual studio 10.0\vc\include\exception(475): или       "bool std::operator ==(std::_Null_type,const std::_Exception_ptr &)"
1>          c:\program files\microsoft visual studio 10.0\vc\include\exception(481): или       "bool std::operator ==(const std::_Exception_ptr &,std::_Null_type)"
1>          c:\program files\microsoft visual studio 10.0\vc\include\system_error(408): или       "bool std::operator ==(const std::error_code &,const std::error_condition &)"
1>          c:\program files\microsoft visual studio 10.0\vc\include\system_error(416): или       "bool std::operator ==(const std::error_condition &,const std::error_code &)"
1>          c:\program files\microsoft sdks\windows\v7.0a\include\guiddef.h(192): или       "int operator ==(const GUID &,const GUID &)"
1>          при попытке сопоставить список аргументов "(tm, char)"
1>c:\documents and settings\администратор\мои документы\visual studio 2010\projects\folder\folder\folder.cpp(19): error C2679: бинарный "=": не найден оператор, принимающий правый операнд типа "char" (или приемлемое преобразование отсутствует)
1>          c:\program files\microsoft visual studio 10.0\vc\include\time.h(116): может быть "tm &tm::operator =(const tm &)"
1>          при попытке сопоставить список аргументов "(tm, char)"
Yandex
Объявления
10.06.2012, 10:25     Заменить символ ':' на символ точки
Ответ Создать тему
Опции темы

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