а немного по подробнее можно? как к примеру вывести на консольный экран: char z[] = "ПревеД"; puts(z); чтобы на консоле отображало ПревеД а не хз что. А то я попробовал то что ты написал, так там цифры одни. И еще, можно както глобально делать перекодировку в ср1251 без CharToOem()? а то немного напряжно постоянно использовать эту ф-ю для каждой переменной. И все же, как тут правильно использовать CharToOem()? интересно всетаки что они изменили.
horlyk, первый параметр CharToOem - источник, второй - приемник. Просто IMHO, я бы не совмещал их. Хз что может произойти, это, конечно, зависит от реализации. Тем более NecroSoft MSDN вот что выдает Так... теперь немножко теории. wchar_t это по сути дело тот же short. Потому, используя, cout ты получаешь на выходе цифры. Теперь перейдет в "раздел как это решить". использовать wcout. Он нормально вывод уникод. Можешь написать свою функцию, которая будет вызывать CharToOem и выводить. Можешь вызывать setlocale(LC_ALL, "Russian"); она тоже ничего
чет я немного не догоняю, wcout тож не хочет русские букви выводить. wchar_t z[7] = L"ПревеД"; wcout << z << endl; пробовал и просто чар. Плз, напишите ктото маленький примерчик.
Code: #include <iostream> #include "stdafx.h" using std::wcout; int _tmain() { wchar_t *wcString = L"ненене"; setlocale(LC_ALL, "Russian"); wcout << L"дадада!" << L" " << wcString << std::endl; _wsystem(L"pause"); return 0; }
тэк-с, вроде где-то пробегала пред моими глазами инфа о том, что это может сама консоль не поддерживать (русский язык имею ввиду)
подключаем #include <windows.h> int main() { SetConsoleOutputCP(1251); cout<<"Вот вам жырный пример "<<endl; return 0; }
как вывести число с ведущим нулем и степень десяти? т.е. я юзаю модификатор %e, могут быть такие числа: 0.123E+001 5.123E+001 а мне нужно чтобы слева от точки был ноль всегда. Если это можно сделать модификатором вывода, подскажите
zindi, после ввода твоего кода, вообще перестает существовать какая поддердка русского языка) Даже стандартная надпись типа "Для продолжения нажмите любую клавишу" тоже абра кадаброй стала)
Насколько мне известно, printf не может выводить с ключом e или E дробное число не в стандартной форме ( не в a+q^t, 1<=a<10), ответ "нет", нельзя модификатором вывода сделать то, что ты захотел. А у тебя компилятор и выводит не в стандартной форме, ерунда получается. Если же обойтись без степени десятки, то функция (то же с флагом "e" можно написать) Code: printf("%13.3f", a); //минимальная ширина поля 13 символов, точность 3 Можно же, заняться математикой, побитово считывать переменную (типа float например, Си), 4 байта, 32 бита на всю; 1 бит под знак, 8 под порядок, 23 на мантиссу: например 12345.67=(2^13)*1.507... 13 это порядок (он не представляется в самой переменной), (127+13) это смещенный порядок (так он представляется в самой переменной [ 127+порядок]) , мантиса это представление 0.507... в двоичном коде. Если не ошибаюсь так : знак числа(1 бит) | порядок(8) | мантисса(23). Информация интересная, то тебе она скорее всего не нужна.
Тут нет телепатов. Код ошибки в студию Все что я пишу, я обязательно прогоняю на компиляторе, так что вероятность ошибки исключена
Задача в следующем, нужно написать функцию на C, которая бы считывала указанный текстовый файл и печатала его содержимое на экран. Как это можно сделать? Пытался так: Code: void catFile(char *s0, char *s1, char *s2) { FILE *cfPtr; char *rwfile; if(strcmp(s0, "") && !strcmp(s1, "") && !strcmp(s2, "")) { /*cat file.name*/ if((cfPtr = fopen(s0, "r")) == NULL) puts("File could not be opened"); else { while(!feof(cfPtr)) { fread(rwfile, sizeof(char), 1, cfPtr); } if(!strcmp(rwfile,"")) { puts(rwfile); } fclose(cfPtr); } } но в ответ получал только Segmentation Fault Помогите пожалуйста разобраться! Заранее спасибо!
Несколько вопросов Как вытащить ip адрес приконектившегося клиента из SOCKADDR_IN после accept ? Если CreateFile вызывается внутри потока и все дальнейший операции с файлом проходят внутри того же потока,то надо заполнять lpSecurityAttributes?Если оставить NULL будет работать или нет? Если уже работает один поток в котором вызывалось WSAStartup ,то надо повторно вызывать ещё раз WSAStartup во 2м потоке если он запущен чуть позже 1го потока который ещё неокончил свою работу ?